我目前正在尝试获取单词中每个字母的整数值,并将其表示为一个长连续的十进制值,而不是加在一起或用新行分隔。我遇到的问题是我不确定如何从列表中取出元素。
def descAscii(words):
dec = []
for letters in words:
dec.append(ord(letters))
print dec
当我像这样调用函数时
descAscii("hello")
打印以下内容:[104, 101,108,108,111]
我想要的结果是 104101108108111
感谢所有意见。
str.join
是从列表构建字符串的正确方法。您还可以使用生成器理解来跳过循环和任何中间列表的构建。
def descAscii(words):
print ''.join(str(ord(letter)) for letter in words)
如果您希望输出为字符串,请使用
"".join(str(i) for i in dec)
如果您希望输出为
int
,则使用
In [83]: reduce(lambda a,b: a*1000 + b, dec)
Out[83]: 104101108108111
def descAscii(words):
dec = ""
for letters in words:
dec += str(ord(letters))
print dec
您可以创建一个字符串并继续附加到它。
word = "hello"
>>> dec
'104101108108111'
如果您希望输出为字符串,还有另一个选项:
分隔符 = '/' your_list = ['费用','fi','fo','fum'] (分隔符).join(your_list)