python-3.8 - Python排序列表基于另一个列表中具有匹配模式的值
问题描述
我有一个清单L1
:
['Apr21_Dzr', 'Aug20_Dzr', 'Dec20_Dzr',
'Nov20_Dzr', 'Oct20_Dzr', 'Sep20_Dzr']
我还有另一个主列表L2
:
['Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'Jan', 'Feb', 'Mar', 'Apr', 'May']
我想对列表进行排序L1
以获得以下内容:
['Aug20_Dzr', 'Sep20_Dzr', 'Oct20_Dzr', 'Nov20_Dzr', 'Dec20_Dzr', 'Apr21_Dzr']
即排序L1
,使其遵循列表中的模式L2
。
解决方案
创建一个中间列表并在这个新列表中对 l1 的元素进行排序。您可以为此使用两个嵌套的 for 循环。然后清除 l1 并将新列表复制到 l1。我在下面展示了我是如何在我的 python shell 中做到这一点的。
>>> new_list=[]
>>> for element in l2:
for data in l1:
if data[:3] == element:
new_list.append(data)
>>> print(new_list)
['Aug20_Dzr', 'Sep20_Dzr', 'Oct20_Dzr', 'Nov20_Dzr', 'Dec20_Dzr', 'Apr21_Dzr']
>>> l1.clear()
>>> l1 = new_list.copy()
>>> print(l1)
['Aug20_Dzr', 'Sep20_Dzr', 'Oct20_Dzr', 'Nov20_Dzr', 'Dec20_Dzr', 'Apr21_Dzr']
推荐阅读
- tsql - 外部应用如何使用从连接表中选择
- javascript - 如何在反应钩子中有条件
- angularjs - 当从模型数组中添加模型元素时,AngularJS - ng-repeat 列表无法使用 groupby 过滤器工作
- kubernetes - 什么是环境
在 kubectl describe pod 命令中 - reactjs - 使用 useState 和 setInterval 反应 useEffect
- html - 如何在文本上使用 css 背景过滤器?
- javascript - 在 React 中,如何通过编写一个不导入任何文件的简单函数来添加复制到剪贴板功能?
- sql - 如何使用 Where 而不是 Group by?
- php - 为什么 POST 值在数据库中保存为空,但 var_dumps / echos 很好?
- java - spring boot rest api上的异步-注释应仅在服务上或控制器上