Python:将一个列表中的字符串添加到第二个列表中,这些列表位于列表中

时间:2014-05-25 10:48:29

标签: python string list

我觉得我在这里缺少一些小学的东西,但无论如何:

我正在尝试将一个列表的元素(即字符串)添加到第二个列表中,但我希望这些字符串能够位于列表内部。

例如,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']]

那么,我到底错过了什么?

1 个答案:

答案 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,用于构建简单的新列表,就像你的情况一样。