我有一个项目列表,我需要实际上是一个列表列表。我看到的所有转换方法都将非列表项转换为单个字符["12", "cat", 87]
到[['1', '2'], ['c', 'a', 't'], ['8', '7']]
的列表,而不是[['12'], ['cat'], [87]]
。以下作品,
v_Data = ["12", "cat", 87]
for index, i in enumerate(v_Data):
if type(i) != list:
v_Data[index] = [i]
print(v_Data) ## [['12'], ['cat'], [87]]
有更好的方法吗?
使用Python 2.7
答案 0 :(得分:3)
您可以使用list-comprehension
:
v_Data = ["12", "cat", 87]
[v if isinstance(v, list) else [v] for v in v_Data]
# [['12'], ['cat'], [87]]
答案 1 :(得分:1)
你可以这样做:
>>> a=["12", "cat", 87]
>>> b=[[i] for i in a]
>>> b
[['12'], ['cat'], [87]]
编辑 : 如果列表中已有列表:
>>> a=["12", "cat", 87, [23]]
>>> b=[[i] if type(i) is not list else i for i in a]
>>> b
[['12'], ['cat'], [87], [23]]
答案 2 :(得分:0)
您可以使用列表理解:
v_Data = ["12", "cat", 87]
new = [[x] for x in v_Data]
类似于:
v_Data = ["12", "cat", 87]
new = []
for x in v_Data:
new.append([x])