拆分嵌套列表中的项目,移动和复制



我有一个由多个嵌套列表组成的列表。

data_v1 = [
['Toronto', 'blue', 'Val1, Val2'],
['Amsterdam', 'red', 'Val1'],
['New York', 'white', 'Val1, Val2']
]

对于每个在第三个项目中包含逗号的嵌套列表,我想基于逗号拆分第三个项目,并为最初在那里的值创建两个新的嵌套列表。所以新的列表看起来像这样。

data_v2 = [
['Toronto', 'blue', 'Val1'],
['Toronto', 'blue', 'Val2'],
['Amsterdam', 'red', 'Val1'],
['New York', 'white', 'Val1'],
['New York', 'white', 'Val2']
]

功能等同于机械猪的列表理解:

data_v1 = [
['Toronto', 'blue', 'Val1, Val2'],
['Amsterdam', 'red', 'Val1'],
['New York', 'white', 'Val1, Val2']
]
data_v2 = []
for sublist in data_v1:
for value in sublist[2].split(", "):
data_v2.append([*sublist[:2], value])
expected_data_v2 = [
['Toronto', 'blue', 'Val1'],
['Toronto', 'blue', 'Val2'],
['Amsterdam', 'red', 'Val1'],
['New York', 'white', 'Val1'],
['New York', 'white', 'Val2']
]
print(data_v2 == expected_data_v2)

输出:

True

最新更新