Python:合并两个有序列表,有条件地替换元素

Python:合并两个有序列表,有条件地替换元素,python,list,python-3.x,replace,merge,Python,List,Python 3.x,Replace,Merge,初学者的问题 我有两个顺序相同的列表 list_1=['de', 'de', 'de', '3'] list_2=['6', '5', '3', 'not'] 因此列表_1的第n个元素对应于列表_2的第n个元素 我想合并这两个列表,同时保持它们的顺序。此外,合并产生的列表应该完全由数字组成,即 merged_list=['6', '5', '3', '3'] 最好是根据字符串或数值在列表中有条件地按位置合并。我对其他有序列表也有同样的问题,但对于这些列表,我想用字符串值替换数值。I.a.为了

初学者的问题

我有两个顺序相同的列表

list_1=['de', 'de', 'de', '3']
list_2=['6', '5', '3', 'not']
因此列表_1的第n个元素对应于列表_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是数值或字符串值,具体取决于列表的性质。

您可以使用它来聚合两个列表项:

>>> 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')]
通过与结合,您将得到您想要的:

>>> [a if a.isdigit() else b for a, b in zip(list_1, list_2)]
['6', '5', '3', '3']
您可以使用聚合两个列表项:

>>> 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')]
通过与结合,您将得到您想要的:

>>> [a if a.isdigit() else b for a, b in zip(list_1, list_2)]
['6', '5', '3', '3']

谢谢你的帮助。请原谅我的无知,但Python输出不是命令吗?@LucSpan,你说得对
zip
返回python 3中的
zip对象..
。它是可编辑的,但不显示它的内容。所以我把
list(zip(…)
放在下一行,以显示迭代后将生成的项目。感谢您的帮助。请原谅我的无知,但Python输出不是命令吗?@LucSpan,你说得对
zip
返回python 3中的
zip对象..
。它是可编辑的,但不显示它的内容。所以我把
list(zip(..)
放在下一行,以显示迭代后将生成的项目。