我觉得我在这里缺少一些小学的东西,但无论如何:
我正在尝试将一个列表的元素(即字符串)添加到第二个列表中,但我希望这些字符串能够位于列表内部。
例如,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']]
。
那么,我到底错过了什么?
答案 0 :(得分:2)
当你在一个iterable上使用list
函数时,它将迭代该对象并使用该iterable的每个元素创建一个新列表。
在您的情况下,字符串是可迭代的。所以,list
迭代字符串并获取单个字符(在Python中没有这样的东西称为字符,这只是为了我们的理解)并将新列表放在一起。
这就是为什么你的代码没有按预期工作的原因。相反,你可以使用列表理解,就像这样
oldlist = ['A1','B2','C3','D4']
print [[item] for item in oldlist]
# [['A1'], ['B2'], ['C3'], ['D4']]
或者在您的程序中,您可以将字符串作为列表文字的列表,而不是使用list
,就像这样
newList.append([item])
但是列表理解优于list.append
,用于构建简单的新列表,就像你的情况一样。