[英]How to prevent leading zeros after mapping to integer using python
我想用数字排序列表
s = [['92', '022'],['82','12'],['77','13']]
所以我用过,
s = [list( map(int,i) ) for i in s]
s.sort()
和输出来了
[[77, 13],[82, 12],[92, 22]]
但我想保持那个22,因为它是,“022”所以,我的问题是如何防止那个领先的零!
您可以使用以下key
来sorted
,这样您就可以避免使用列表推导来转换实际值:
sorted(l, key = lambda x: int(x[0]))
[['77', '13'], ['82', '12'], ['92', '022']]
您还可以使用operators.itemgetter
通过@aws_apprentice的建议:
sorted(l, key = lambda x: int(itemgetter(0)(x)))
[['77', '13'], ['82', '12'], ['92', '022']]
key
功能背后的想法:将值转换为其排序键。 所以:
def sort_key(val):
return list(map(int, val))
s.sort(key=sort_key)
# [['77', '13'], ['82', '12'], ['92', '022']]
应该最接近你的尝试逻辑。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.