遍历两个列表并返回索引

时间:2021-06-10 10:19:04

标签: python list loops

我创建了一个习惯跟踪器应用程序,其中一个功能是返回最长的连续完成习惯。如果有两个或多个习惯的连胜长度相同,我想全部返回。因此,我在 id_list 中保存了习惯 ID,在 streak_length_list 中保存了相应的连续长度。

举个例子:

id_list = [1, 2, 3, 4, 5, 6]
streak_length_list = [2, 5, 6, 6, 6, 1]
longest_streak = max(streak_length_list)
longest_streak_ids = []

如何同时遍历 id_liststreak_length_list 并将各自的 ID 附加到 longest_streak_id 列表(如果其长度等于 longest_streak 值)?

2 个答案:

答案 0 :(得分:2)

您不需要遍历两个列表,只需遍历 streak_length_list 并使用 enumerate 来获取所有项目的值和索引。如果值等于 longest_streak,则使用索引从 id_list

获取 id
longest_streak_ids = [id_list[i] for i, x in enumerate(streak_length_list) if x == longest_streak]

答案 1 :(得分:1)

您可以压缩列表:

longest_streak_ids = [i for i, x in zip(id_list, streak_length_list) if x == longest_streak]

Out[15]: [3, 4, 5]
相关问题