gpt4 book ai didi

python - 有条件地合并列表

转载 作者:行者123 更新时间:2023-11-28 20:08:49 25 4
gpt4 key购买 nike

假设我有两个列表

[16, 0, 0, ';', 17, 0, 2, ';', 0, 2, 1, ';']
[-1, 0, ';', 0, -2, ';', -2, -1, ';']

是否有一种更简单的方法可以在满足“;”条件的情况下有条件地合并这些列表元素字符而不是单独遍历它们并将它们组合起来?

输出应该是

[16, 0, 0, -1, 0, ';', 17, 0, 2, 0, -2, ';', 0, 2, 1, -2, -2,';']

最佳答案

def get_part(lst,sep=';'):
out = []
for i in lst:
if i == sep:
yield out
out = []
else:
out.append(i)

现在我们可以将您的列表压缩在一起:

merged = []
for l1,l2 in zip(get_part(list1),get_part(list2)):
merged.extend(l1)
merged.extend(l2)
merged.append(';')

当然,从本质上讲,这本质上是对它们进行迭代并结合……所以在回答您的问题时,我认为没有更好的方法。


或许存储列表的更好方法是将它们存储为列表的列表——例如:

list1 = [[16, 0, 0], [ 17, 0, 2], [ 0, 2, 1] ]

像这样存储,你可以这样做:

merged = [ l1 + l2 for l1,l2 in zip(list1,list2) ]

关于python - 有条件地合并列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12424759/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com