初学者的问题。
我有两个订购的列表,
list_1=['de', 'de', 'de', '3']
list_2=['6', '5', '3', 'not']
因此,list_1的n-元素对应于list_2的n-元素。
我想在坚持其订单的同时合并这两个列表。此外,合并产生的列表应完全由数字组成,即
merged_list=['6', '5', '3', '3']
最好是,我按列表中的位置合并在字符串或数字值上。我在其他有序列表中也有同样的问题,但是对于这些列表,我想用字符串值替换数字值。I.A.用我想做的所有有序列表来解决我的麻烦:
replace element_n of list_i with element_n of list_j if element_n of list_i equals 'z'
其中z是数字值或字符串值,取决于列表的性质。
您可以使用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
通过与有条件的表达结合并列表理解,您将获得想要的东西:
>>> [a if a.isdigit() else b for a, b in zip(list_1, list_2)]
['6', '5', '3', '3']