繁体   English   中英

如何使用python映射到整数后防止前导零

[英]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”所以,我的问题是如何防止那个领先的零!

您可以使用以下keysorted ,这样您就可以避免使用列表推导来转换实际值:

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM