如何在Python中从字符串中删除引号

如何在Python中从字符串中删除引号,python,Python,目前我有一个字符串列表,比如: list1 = [1,2,3,4] 我想使用以下命令将此数字列表转换为相应的字母: output = [chr(ord((str(x+96)))) for x in list1] 当我这样做时,我得到一个错误,说程序期望字符串长度为1,但在我的代码中,它给出了一个3的字符串长度,因为在转换成字符串后,每个数字周围都有'。转换为字符串是必要的,因为ord必须采用字符串格式才能工作 所以我想问你们的问题是,我怎样才能解决这个问题和/或摆脱这些引用 如果有人想知道,

目前我有一个字符串列表,比如:

list1 = [1,2,3,4]
我想使用以下命令将此数字列表转换为相应的字母:

output = [chr(ord((str(x+96)))) for x in list1]
当我这样做时,我得到一个错误,说程序期望字符串长度为1,但在我的代码中,它给出了一个3的字符串长度,因为在转换成字符串后,每个数字周围都有
'
。转换为字符串是必要的,因为ord必须采用字符串格式才能工作

所以我想问你们的问题是,我怎样才能解决这个问题和/或摆脱这些引用

如果有人想知道,它应该是

output = [a,b,c,d]

你有一个整数,加上96,结果应该是:

output = [chr(x+96) for x in list1]
您可以完全抛弃
ord
str

list1 = [1,2,3,4]

output = [chr(x+96) for x in list1]

print output #Prints: ['a', 'b', 'c', 'd']

你有一个整数,加上96,结果应该是:

output = [chr(x+96) for x in list1]
您可以完全抛弃
ord
str

list1 = [1,2,3,4]

output = [chr(x+96) for x in list1]

print output #Prints: ['a', 'b', 'c', 'd']

你的答案是:

 output = [chr((x+96)) for x in list1]
ord
获取一个字符并返回该字符的整数序号。在代码中,您正在执行以下操作:

ord((str(x+96)))
这就是,

ord((str(1+96)))
ord('97')
所以你得到了错误。
ord
的参数将是一个单字符字符串。比如:

>>> ord('a')
>>> 97

但是,为了获得预期的输出,您不需要使用
ord

您的答案如下:

 output = [chr((x+96)) for x in list1]
ord
获取一个字符并返回该字符的整数序号。在代码中,您正在执行以下操作:

ord((str(x+96)))
这就是,

ord((str(1+96)))
ord('97')
所以你得到了错误。
ord
的参数将是一个单字符字符串。比如:

>>> ord('a')
>>> 97

但是为了获得预期的输出,您不需要使用
ord

打印列表打印其元素的字符串表示,其中包括列表中字符串元素周围的单引号。您只需自己格式化字符串:

>>> '[{}]'.format(','.join([chr((x+96)) for x in list1]))
'[a,b,c,d]'
或以印刷形式:

>>> print '[{}]'.format(','.join([chr((x+96)) for x in list1]))
[a,b,c,d]

该方法允许您格式化字符串。在本例中,大括号用作要包含在最终字符串中的值的占位符。方括号是格式的一部分,用于提供实际的类似数组的输出。该方法获取一个对象数组,并将它们连接在一起形成一个组合字符串。在本例中,我使用文字逗号连接了几个对象。这将生成逗号分隔的字符串输出。内部列表理解本质上是您已经提供的代码。

打印列表会打印其元素的字符串表示,其中包括列表中字符串元素周围的单引号。您只需自己格式化字符串:

>>> '[{}]'.format(','.join([chr((x+96)) for x in list1]))
'[a,b,c,d]'
或以印刷形式:

>>> print '[{}]'.format(','.join([chr((x+96)) for x in list1]))
[a,b,c,d]

该方法允许您格式化字符串。在本例中,大括号用作要包含在最终字符串中的值的占位符。方括号是格式的一部分,用于提供实际的类似数组的输出。该方法获取一个对象数组,并将它们连接在一起形成一个组合字符串。在本例中,我使用文字逗号连接了几个对象。这将生成逗号分隔的字符串输出。内部列表理解基本上是您已经提供的代码。

您不能用正确的方法来理解吗

string = " abcdefghijklmnopqrstuvwxyz"
newlist = []
for num in nums:
    newlist.append(string[num])

你不能用理智的方式来做吗

string = " abcdefghijklmnopqrstuvwxyz"
newlist = []
for num in nums:
    newlist.append(string[num])

假设您只希望打印字符串:

>>> list1 = [1, 2, 3, 4]
>>> pretty_string = ""
>>> # strings are immutable so need to
>>> # create new and assign to old variable name.
>>> for i in list1:
>>>     pretty_string = pretty_string + str(i) + ", "
>>> pretty_string = pretty_string[:-2] # remove trailing comma and space
>>> print(pretty_string)
1, 2, 3, 4
str(i)
方法将
i
转换为字符串类型

或者,要逐字打印您要求的内容:

>>> print("output = [" + pretty_string + "]")
output = [1, 2, 3, 4]
但是,如果您想要整数列表元素的字符表示列表,则:

>>> list1 = [1, 2, 3, 4] # integer values
>>> character_reps = []
>>> for i in list1:
>>>     character_reps.append(str(i))
>>> for i in character_reps:
>>>     print(i) # no need to convert as members already string types
1
2
3
4

假设您只希望打印字符串:

>>> list1 = [1, 2, 3, 4]
>>> pretty_string = ""
>>> # strings are immutable so need to
>>> # create new and assign to old variable name.
>>> for i in list1:
>>>     pretty_string = pretty_string + str(i) + ", "
>>> pretty_string = pretty_string[:-2] # remove trailing comma and space
>>> print(pretty_string)
1, 2, 3, 4
str(i)
方法将
i
转换为字符串类型

或者,要逐字打印您要求的内容:

>>> print("output = [" + pretty_string + "]")
output = [1, 2, 3, 4]
但是,如果您想要整数列表元素的字符表示列表,则:

>>> list1 = [1, 2, 3, 4] # integer values
>>> character_reps = []
>>> for i in list1:
>>>     character_reps.append(str(i))
>>> for i in character_reps:
>>>     print(i) # no need to convert as members already string types
1
2
3
4


list1
是整数列表,而不是字符串列表。您希望输出的内容是不可能的。”a'是一个字符,其中as
a
w不带引号是'some object'。在这种特殊情况下,没有定义该对象。请您解释一下“为什么”您希望输出的格式是您想要的格式吗?
list1
是一个整数列表,而不是字符串列表。您希望输出的内容是不可能的a'是一个字符,其中as
a
w不带引号是'some object'。在这种特殊情况下,没有定义该对象。请您解释一下为什么您希望输出的格式符合您的要求?谢谢!这似乎是可行的,当我打印结果时,每个字母都会带引号出来。在代码中,字母是列表中的字符串。在python中,字符串用引号表示。所以这些引语是无法消除的。谢谢!这似乎是可行的,当我打印结果时,每个字母都会带引号出来。在代码中,字母是列表中的字符串。在python中,字符串用引号表示。所以这些引语无法消除。谢谢!这是有道理的…您的代码似乎工作,但是,我如何才能删除结果中的引号?谢谢!这是有道理的…你的代码似乎可以工作,但是,我如何才能从结果中删除引号?@Flo:我的答案给出了你要求的确切输出。啊,它确实可以工作。我有点犹豫,因为我不知道它是如何工作的,所以你能解释一下吗?我还是一个编程新手…谢谢!您使用的是Python2还是Python3?不确定…SageMath的Python工作表se
import sys;打印(系统版本)
以查找。如果您当前正在
print
语句中使用括号,那么您可能正在使用Python 3。如果不是,那么可能是Python 2。我已经给出了Python 2文档的链接,但是如果您指定不同的版本,我会更新我的答案。@Flo:我的答案给出了您要求的确切输出。啊,它确实有效。我有点犹豫,因为我不知道它是如何工作的,所以你能解释一下吗?我还是progra的新手