Mar*_*tin 4 python sorting list
我有两个清单:
ordered = ['salat', 'baguette', 'burger', 'pizza']
unordered = ['pizza', 'burger']
Run Code Online (Sandbox Code Playgroud)
现在我想删除有序列表中的所有条目,这些条目不在无序列表中,同时保留排序.
我怎样才能做到这一点?
ordered = [item for item in ordered if item in unordered]
Run Code Online (Sandbox Code Playgroud)
此方法使用Python的列表推导基于旧列表创建新列表.
对于大量数据,首先将无序列表转换为集合,正如人们在评论中所建议的那样,在性能上产生巨大差异,例如:
unordered = set(unordered)
Run Code Online (Sandbox Code Playgroud)
订购:5000件无序:1000件
0.09561s未设置
0.00042s
对于10/2项目,时间几乎相同,因此无论数据大小如何,始终使用集合都是好的.