从Python开始,我喜欢:)
但我有个小问题。你知道吗
我有两个清单:
list_a = ['XL', 'L', '0S', '1L', '1S', '2S', 'M', '58', '52', 'XXL']
list_b = ['S', 'M', 'L', 'XL', '0S', '1S', '2S', '3S']
我想在模板列表“list\u b”之后排序“list\u a”
如果它不存在于“列表b”中,我想把它添加到最后。你知道吗
我想要的结果是:
['M', 'L', 'XL', '0S' ,'1S', '2S', "The rest unsorted here" ]
安德烈亚斯H
将第二个列表转换为将字符串映射到其索引的字典,然后将
sorted
与此dict一起使用key
:... else maxsize
部分是键不在dict中的情况下的回退。maxsize
是一个非常大的依赖于系统的整数值,应该大于任何列表的大小。你知道吗输出:
详细说明:
range(len(list_b))
生成项的索引[0, 1, 2, 3, ...]
zip
创建具有项和索引的对的列表:[('S', 0), ('M', 1), ...]
dict
转换为dictionary,因此您现在可以快速找到M
的索引是1
lambda
是一个函数,它接受一个字符串,将其传递给dict,如果找不到索引,则返回maxsize
将列表转换为字典是必要的,以确保查找需要(分摊)固定时间,而不是每次线性地重新扫描列表。你知道吗
相关问题 更多 >
编程相关推荐