提问人:AhmadShahMassoud 提问时间:8/16/2022 最后编辑:blackravenAhmadShahMassoud 更新时间:8/26/2022 访问量:172
如何将字符串列表合并到列表列表中?
How to merge list of strings into list of lists?
问:
我有一个这样的列表:
list_1 = ['2a', '3b', '2c', '2d', ... ]
还有另一个这样的列表:
list_2 = [[], [], [], ['3a'], ['3b']... ]
这两个列表具有相同的大小。我想合并它们以获得第三个:
list_3 = [['2a'], ['3b'], ['2c','3a'], ['2d','3b']...]
我尝试使用 dataFrames 进行合并,我尝试了一些不同的循环,但我得到的都是错误的。我尝试了一些类似问题的答案,但我得到的都不是我所期望的。
这是我尝试过的一些例子:
list_3 = list(product(list_1, list_2))
for i in list_2:
for j in list_2:
list_3 = list.append(str(i) + str(j))
list_3 = [[str(list_1[x]) + str(x)] for x in list1,list_2]
我遇到的问题是:
list_3 = [['2a', '3b', '2c', '2d'...], [],[]....]
list_3 = [('2a', []), ('3b',[]), ('2c',['3a']), ...]
你有什么解决方案吗?如果答案已经存在,请链接它。
答:
3赞
Guy
8/16/2022
#1
只需列表并在将字符串更改为后使用合并每个列表zip
tuple(str, list)
+
list
list_3 = [[x] + z for x, z in zip(list_1, list_2)]
另一种方法是使用zip
enumerate
list_3 = [[x] + list_2[i] for i, x in enumerate(list_1)]
输出
print(list_3) # [['2a'], ['3b'], ['2c', '3a'], ['2d', '3b']]
1赞
azro
8/16/2022
#2
你想配对东西,不要双循环或产品任何东西
用于对两者进行迭代,然后生成合并zip
list_1 = ['2a', '3b', '2c', '2d']
list_2 = [[], [], ['3a'], ['3b']]
result = []
for value1, sublist2 in zip(list_1, list_2):
result.append([value1] + sublist2)
print(result)
# [['2a'], ['3b'], ['2c', '3a'], ['2d', '3b']]
0赞
blackraven
8/16/2022
#3
我会确保两个列表具有相同的长度,然后使用它们的索引附加到新列表中。仅使用列表推导的简单解决方案:list[index]
list_1 = ['2a', '3b', '2c', '2d']
list_2 = [ [], [], ['3a'], ['3b'] ]
if len(list_1) == len(list_2):
new_list = [[list_1[i]] + list_2[i] for i in range(len(list_1))]
print(new_list)
输出
[['2a'], ['3b'], ['2c', '3a'], ['2d', '3b']]
上一个:如何从列表列表中删除列表集
评论