gpt4 book ai didi

python - 过滤掉与另一个列表匹配的列表元素并保留原始列表顺序

转载 作者:行者123 更新时间:2023-12-01 01:29:59 25 4
gpt4 key购买 nike

假设我有以下列表

periods = ['2017 Q1', 'TEST2', '2018 Q4','2017 Q2', '2019Q3', '2017 Q3', '2017 Q4', '2017 FY', 'TEST']

我想过滤句点以返回列表中包含此列表中的元素的任何元素

master_list = ['Q1', 'Q2', 'Q3', 'Q4', 'S1', 'S2', 'FY']

所以我希望

filtered = ['2017 Q1', '2018 Q4','2017 Q2', '2019 Q3', '2017 Q3', '2017 Q4', '2017 FY']

当我做这样的事情时

a = [period for period in periods for master in master_list if period in master]

但这会返回:

filtered = ['2017 Q1', '2017 Q2', '2019 Q3', '2017 Q3', '2017 Q4' ,'2018 Q4' ,'2017 FY']

此商品已重新排序。

最佳答案

您需要检查是否 master in period :

master_list = ['Q1', 'Q2', 'Q3', 'Q4', 'S1', 'S2', 'FY']
periods = ['2017 Q1', 'TEST2', '2018 Q4', '2017 Q2', '2019Q3', '2017 Q3', '2017 Q4', '2017 FY', 'TEST']
a = [period for period in periods for master in master_list if master in period]

print(a)

输出

['2017 Q1', '2018 Q4', '2017 Q2', '2019Q3', '2017 Q3', '2017 Q4', '2017 FY']

说明

表达式'2017 Q1' in 'Q1'检查是否 '2017 Q1''Q1' 的子串这是 False ,另一方面 'Q1' in '2017 Q1 '是True

关于python - 过滤掉与另一个列表匹配的列表元素并保留原始列表顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52980918/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com