1

我试图弄清楚如何生成一个列表(对于每个字符串),一个代表每个字符串中字符的 ASCII 值列表。

例如。改变“你好”,“世界”,使其看起来像:

[[104, 101, 108, 108, 111], [119, 111, 114, 108, 100]]

到目前为止,这是我的代码:

words = ["hello", "world"]
ascii = []
for word in words:
    ascii_word = []
    for char in word:
        ascii_word.append(ord(char))
    ascii.append(ord(char))

print ascii_word, ascii

我知道它不起作用,但我正在努力使其正常运行。任何帮助将非常感激。谢谢

4

2 回答 2

1

一种方法是使用嵌套列表推导

>>> [[ord(c) for c in w] for w in ['hello', 'world']]
[[104, 101, 108, 108, 111], [119, 111, 114, 108, 100]]

这只是编写以下代码的一种简洁方式:

outerlist = []
for w in ['hello', 'world']:
    innerlist = []
    for c in w:
        innerlist.append(ord(c))
    outerlist.append(innerlist)
于 2015-04-24T02:04:35.407 回答
1

你很接近:

words = ["hello", "world"]
ascii = []
for word in words:
    ascii_word = []
    for char in word:
        ascii_word.append(ord(char))
    ascii.append(ascii_word)  # Change this line

print ascii # and only print this.

但请查看列表推导和@Shashank 的代码。

于 2015-04-24T02:08:27.090 回答