list(" String")创建[" S"," t"," r"," i",& #34; n"," g"]而不是["字符串"]

时间:2017-12-13 21:23:41

标签: python string list

我是python的新手。 str.split()函数用于拆分字符串,但是列表后面的逻辑("字符串")用于拆分字符串

 >>> list("String")
['S', 't', 'r', 'i', 'n', 'g']

为什么不创建一个像['String']

这样的字符串的列表

6 个答案:

答案 0 :(得分:2)

list接受一个可迭代的参数,并生成一个列表,其中每个值都有一个元素来自iterable。 str是可迭代的,由字符串的每个字符组成,作为单独的元素。请注意,您无法编写list(1)来获取列表[1],因为1不可迭代。

答案 1 :(得分:2)

在Python中,list()将采用任何迭代并尝试将其转换为列表。由于字符串是可迭代的(在引擎盖下,它实际上只是一个字符数组),list()命令将每个字符转换为一个项目。

要创建第一项为'String'的列表,您需要使用列表速记:

my_list = ['String']

或者在传递给list()时将字符串包装在另一个可迭代中,这感觉非常多余

my_list = list(['String'])

答案 2 :(得分:0)

list()将可迭代字符串转换为一个列表,该列表由找到的每个元素组成。

https://docs.python.org/3.5/library/stdtypes.html?highlight=list#list

  

构造函数构建一个列表,其项目与iterable的项目相同且顺序相同。 iterable可以是序列,支持迭代的容器,也可以是迭代器对象。如果iterable已经是一个列表,则会生成并返回一个副本,类似于iterable [:]。例如,列表(' abc')会返回[' a',' b',' c']和列表((1,2) ,3))返回[1,2,3]。如果没有给出参数,构造函数将创建一个新的空列表[]。

答案 3 :(得分:0)

试试这个:

list(["string"]) ['string'] 看起来当您使用list("String")时,您将文本作为元素发送以创建列表,而不是完整字符串。

答案 4 :(得分:0)

list()遍历字符串,将每个项目附加到列表中。如果您想创建一个包含单个元素'string'的列表,您可以执行类似

的操作
x = list()
to_add = 'string'
x.append(to_add)
print(x)

这将创建一个类似于['string']

的列表

答案 5 :(得分:0)

list(" strings")将使您的变量可迭代

如果您想将变量显示为["字符串"]

你的清单应该像这样宣布

list=["strings"]
>>>>>>>>>> list[0] ### should display
>>>>>>>>>> "strings"
>>>>>>>>>> list  ### if it's lenght is equal to 1
>>>>>>>>>> ["strings"] ##### this should be the result