Python-查找与另一个列表的元素匹配的列表元素的索引

时间:2020-01-30 14:54:16

标签: python

我有一个较长的列表,其中包含代表唯一日期的字符串。

dates = ['20171021', '20171031', '20171102', '20171225', '20180101', '20180106',
 '20180126', '20180131', '20180312', '20180315', '20180330', '20180409',
 '20180414', '20180419', '20180421', '20180424', '20180426', '20180429',
 '20180501', '20180516', '20180524', '20180603', '20180605', '20180608', '20180613']

以及带有部分日期的简短字符串列表(仅限那些我感兴趣的字符串)

selected_dates = ['20171021',  '20180106', '20180414', '20180426']

我想使用第二个列表在较大列表中查找与第二个列表中的日期匹配的元素的索引,这样结果将是

[0, 5, 12, 16]

编辑:

我现在发现我可以使用

dates.index('20171021')

查找单个索引,但是我不能使用

dates.index(selected_dates)

因为这将搜索列表2是否为列表1的元素。

2 个答案:

答案 0 :(得分:2)

您可以在列表理解中使用.index()

dates = ['20171021', '20171031', '20171102', '20171225', '20180101', '20180106',
 '20180126', '20180131', '20180312', '20180315', '20180330', '20180409',
 '20180414', '20180419', '20180421', '20180424', '20180426', '20180429',
 '20180501', '20180516', '20180524', '20180603', '20180605', '20180608', '20180613']

selected_dates = ['20171021',  '20180106', '20180414', '20180426']

filtered_dates = [dates.index(i) for i in selected_dates] #Find the index value of i in dates for each value in selected_dates

输出:

[0, 5, 12, 16]

答案 1 :(得分:1)

您可以使用index方法进行操作。

>>> for date in selected_dates:
    print(dates.index(date))
0
5
12
16