list(“String”)创建[“S”,“t”,“r”,“i”,“n”,“g”]而不是[“String”]

问题描述 投票:-5回答:6

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

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

为什么不创建像这个['String']一样的字符串列表

python string list
6个回答
2
投票

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


2
投票

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

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

my_list = ['String']

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

my_list = list(['String'])

0
投票

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

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

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


0
投票

试试这个:

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


0
投票

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

x = list()
to_add = 'string'
x.append(to_add)
print(x)

这将创建一个类似['string']的列表


0
投票

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

如果要将变量显示为[“strings”]

你的清单应该像这样声明

list=["strings"]
>>>>>>>>>> list[0] ### should display
>>>>>>>>>> "strings"
>>>>>>>>>> list  ### if it's lenght is equal to 1
>>>>>>>>>> ["strings"] ##### this should be the result
© www.soinside.com 2019 - 2024. All rights reserved.