我有两个列表。一个包含两个元素的元组列表,另一个仅包含字符串。
以这种方式组合它们的最佳方式是什么:
list1 = [('1','2'), ('3','4')]
list2 = ['one','two']
expected_result = [('1','2','one'), ('3','4','two')]我被这样的东西卡住了:
result = [elt+(list2[0],) for elt in list1]然而,我不确定是否有可能在一个列表理解中同时迭代两个列表。有一点脑筋急转弯。任何帮助都将不胜感激。
加分,如果它适合在一行(列表理解风格)!
发布于 2021-09-03 17:14:07
您可以将这两个列表zip()在一起。这将为您提供像(('1', '2'), 'one')这样的元素。这假设列表的长度相同。然后,在列表理解中,通过连接这些元组或将第一个元组扩展为元组来创建一个新的元组,如下所示:
list1 = [('1','2'), ('3','4')]
list2 = ['one','two']
[(*t, word) for t, word in zip(list1, list2)]
# [('1', '2', 'one'), ('3', '4', 'two')]或者:
[t + (word,) for t, word in zip(list1, list2)]发布于 2021-09-03 18:57:51
列表理解风格解决方案(单行)
list1 = [('1','2'), ('3','4')]
list2 = ['one','two']
new_lst = [ list1[i]+(list2[i],) for i in range(len(list1))]
print(new_lst)>> ('1','2','one'),('3','4','two')
https://stackoverflow.com/questions/69048446
复制相似问题