初学者的问题。
我有两个订单相同的订单,
list_1=['de', 'de', 'de', '3']
list_2=['6', '5', '3', 'not']
所以list_1的第n个元素对应于list_2的第n个元素。
我想在坚持订单的同时合并这两个列表。此外,合并产生的清单应完全由数字组成,即
merged_list=['6', '5', '3', '3']
优选地,我在条件列表中有条件地合并字符串或数值。我对其他有序列表有同样的问题,但是对于那些列表,我想用字符串值替换数值。 .A。用我所做的所有有序列表来解决我的麻烦我想做一些像:
replace element_n of list_i with element_n of list_j if element_n of list_i equals 'z'
其中z是数值或字符串值,具体取决于列表的性质。
答案 0 :(得分:0)
您可以使用zip
汇总两个列表项:
>>> list_1 = ['de', 'de', 'de', '3']
>>> list_2 = ['6', '5', '3', 'not']
>>> zip(list_1, list_2)
<zip object at 0x1029e53c8>
>>> list(zip(list_1, list_2))
[('de', '6'), ('de', '5'), ('de', '3'), ('3', 'not')]
和str.isdigit
检查给定字符串是否为数字:
>>> '123'.isdigit()
True
>>> 'de'.isdigit()
False
通过与conditional expression和list comprehension相结合,您可以获得所需内容:
>>> [a if a.isdigit() else b for a, b in zip(list_1, list_2)]
['6', '5', '3', '3']