如何在Python中将字符列表转换为ASCII?

3

你好,我有点新手Python并且正在尝试将一串字符转换为ASCII码,但我不知道该怎么做。

所以我的代码中相关的部分可能是这样的:

string = input(“Enter a line of text: “)
l = list(string)
return(l)

因为输入的内容是由单个字符组成的,而不是整个字符串,所以它将输入放入列表中。但我不知道如何将其转换为ASCII码。我知道我需要使用ord()函数,但当输入超过一个字符时,我不知道该如何操作,因为我不知道输入会是什么,所以我不能像ord(A)那样简单处理。

我应该如何处理?


一个字符串已经是字符集合了,不需要第二行代码。 - Eric Duminil
1
注意:假设 OP 使用的是 Python3(请注意 input()),结果是 Unicode 代码点列表,而不是 ASCII 值列表。 - Robᵩ
5个回答

2

您可以使用一个列表推导式如下所示:

string = input(“Enter a line of text: “) 
list_of_characters = list(string)
list_of_ord_values = [ord(character) for character in list_of_characters]

请注意,由于字符串是可迭代的,您可以跳过中间步骤:
list_of_ord_values = [ord(character) for character in string]

1
string = input("enter string: ")
for i in string:
    if i != ' ':            # ignoring space char
        print(i, ord(i))

输入

sample string

输出

s 115
a 97
m 109
p 112
l 108
e 101
s 115
t 116
r 114
i 105
n 110
g 103

输出甚至可以保存到另一个列表中。


0
如果您使用的是 Python 2,字符串默认以 ASCII 编码。如果您正在使用 Python 3,则可以使用内置字符串方法 "encode" 将字符串转换为 ASCII:
ascii = string.encode('ascii')

如果您想将其表示为列表,可以尝试分别对每个进行编码,因为ASCII字符的默认迭代表示是整数。(尝试[x for x in b'binary string!'])
ascii_chars = [char.encode('ascii') for char in string]

0
你需要使用for循环遍历每个字符并将它们转换为ASCII码。
你已经有了一个名为l的列表,其中包含字符串中的每个字符。因此,请遍历l并使用ord()函数将列表中的每个字符转换为ASCII值。

0
这是一种时间复杂度高效的方法。假设您的列表是单个字符,如下所示: l = ['a', 'b', 'c'] ascii_values = map(ord, l)
这将把每个字符映射到其指定的ASCII值。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接