我目前正试图取一个单词中每个字母的整数值,并将其表示为一个长连续十进制值,而不是加在一起或用新行分隔。我遇到的问题是我不确定如何将这些元素从列表中删除。
def descAscii(words):
dec = []
for letters in words:
dec.append(ord(letters))
print dec
当我调用此函数时descAscii("hello")
打印以下内容:[104, 101,108,108,111]
我想要的结果是104101108108111
赞赏所有输入。
答案 0 :(得分:3)
str.join
是从列表构建字符串的正确方法。您还可以使用生成器理解跳过循环和任何中间列表构建。
def descAscii(words):
print ''.join(str(ord(letter)) for letter in words)
答案 1 :(得分:1)
如果您希望输出为字符串,请使用
"".join(str(i) for i in dec)
如果您希望输出为int
,请使用
In [83]: reduce(lambda a,b: a*1000 + b, dec)
Out[83]: 104101108108111
答案 2 :(得分:0)
def descAscii(words):
dec = ""
for letters in words:
dec += str(ord(letters))
print dec
你可以创建一个字符串并继续追加它。
word = "hello"
>>> dec
'104101108108111'