【发布时间】:2017-09-21 13:22:38
【问题描述】:
我有这个列表理解功能:
def mergesafirmacheta(list1,list2):
desiredlist = [list2[0][:3] + [n2, list2[0][4]] if n1 == list2[0][1]
else [id, n1, dates, n2, 0] for id, n1, dates, n2, n3 in list1]
return desiredlist
而我的 list1 和 list2 看起来像这样:
list1=[['user1', 186, 'Feb 2017, Mar 2017, Apr 2017', 550, 555],
['user2', 282, 'Mai 2017', 3579, 3579],
['user3', 281, 'Mai 2017', 10, 10]]
list2=[['user2', 282, 'Feb 2017, Mar 2017, Apr 2017, Mai 2017', 100, 1000],
['user1', 186, 'Feb 2017, Mar 2017, Apr 2017, Mai 2017', 0, 740]]
我if n1 == list2[0][1]我想遍历所有列表,而不仅仅是 list2 中 index[1] 位置的第一个列表,因为现在我只能到达:['user2', 282, 'Feb 2017, Mar 2017, Apr 2017, Mai 2017', 100, 1000] 比较我的 if 中的 282,但是在我的第二个列表中,我永远不会达到 186。我怎样才能遍历所有这些? (可能是在 list2 中会有更多的列表)。
稍后编辑:
期望的输出:
[['user1', 186, 'Feb 2017, Mar 2017, Apr 2017', 550, 740],
['user2', 282, 'Feb 2017, Mar 2017, Apr 2017, Mai 2017', 3579, 1000],
['user3', 281, 'Mai 2017', 10, 0]]
【问题讨论】:
-
这是不同的,因为我询问了与该主题相比的另一个主题。
-
我进行了编辑。
-
必须是列表理解吗?这样做的目的是使代码清晰易读,而通过理解来实现你想要的东西会达到相反的效果..
-
不需要列表理解。
标签: python python-3.x list