元素明智的连接与Python中的两个列表列表
Posted
技术标签:
【中文标题】元素明智的连接与Python中的两个列表列表【英文标题】:Element wise concat with two list of lists in Python 【发布时间】:2020-05-08 08:10:03 【问题描述】:我有 2 个列表:
a = [['Apple'], ['Banana']]
b = [[1,2,3,4], [4,5,6]]
我怎样才能明智地连接为字符串元素并获得一个新的列表列表,如下所示:
new_list = [['Apple1', 'Apple2', 'Apple3', 'Apple4'], ['Banana4', 'Banana5', 'Banana6']]
最好的问候。
【问题讨论】:
【参考方案1】:您可以使用 2 个for
循环:
new_list = []
for [item], numbers in zip(a, b):
item_list = []
for n in numbers:
item_list.append(f'itemn')
new_list.append(item_list)
new_list
输出:
[['Apple1', 'Apple2', 'Apple3', 'Apple4'], ['Banana4', 'Banana5', 'Banana6']]
或者你可以使用列表推导:
[[f'itemn' for n in numbers] for [item], numbers in zip(a, b)]
【讨论】:
【参考方案2】:这对你有帮助吗?
a = [['Apple'], ['Banana']]
b = [[1,2,3,4], [4,5,6]]
print([
[c + str(d) for d in j for c in i] for i, j in zip(a, b)
])
输出:
[['Apple1', 'Apple2', 'Apple3', 'Apple4'], ['Banana4', 'Banana5', 'Banana6']]
【讨论】:
【参考方案3】:一个没有itertools
:
[["%s%s" % (i[0], n) for n in j] for i,j in zip(a,b)]
输出:
[['Apple1', 'Apple2', 'Apple3', 'Apple4'], ['Banana4', 'Banana5', 'Banana6']]
【讨论】:
【参考方案4】:使用itertools.cycle
例如:
from itertools import cycle
a = [['Apple'], ['Banana']]
b = [[1,2,3,4], [4,5,6]]
result = [[m+str(n) for m, n in zip(cycle(i), j) ] for i,j in zip(a, b)]
print(result)
输出:
[['Apple1', 'Apple2', 'Apple3', 'Apple4'], ['Banana4', 'Banana5', 'Banana6']]
【讨论】:
以上是关于元素明智的连接与Python中的两个列表列表的主要内容,如果未能解决你的问题,请参考以下文章