我觉得我在这里缺少一些基本知识,但无论如何:
我试图将一个列表中的元素(即字符串)添加到第二个列表中,但我希望这些字符串本身位于列表中。
例如,诸如此类的元素oldList = ['A1','B2','C3','D4']
应为newList = [['A1'],['B2'],['C3'],['D4']]
。
我尝试过类似于以下代码:
newList = []
for item in oldList:
newList.append(item)
print newList
输出的精确副本oldList
。
我也尝试过:
newList = []
for item in oldList:
newList.append(list(item))
print newList
输出[['A','1'], ['B','2'], ['C','3'], ['D','4']]
。
那么,我到底在这里想念什么?
当list
在可迭代对象上使用function时,它将迭代该对象并使用该可迭代对象的每个元素创建一个新列表。
在您的情况下,字符串是可迭代的。因此,list
迭代字符串并获得单个字符(Python中没有所谓的字符,这只是为了我们的理解),然后整理了一个新列表。
这就是为什么您的代码无法按预期工作的原因。相反,您可以像这样使用列表理解
oldlist = ['A1','B2','C3','D4']
print [[item] for item in oldlist]
# [['A1'], ['B2'], ['C3'], ['D4']]
或者在您的程序中,代替使用list
,可以使用列表文字使字符串成为列表,像这样
newList.append([item])
但是list.append
,就像您的情况一样,List Comprehension优于,用于构造简单的新列表。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句