排序混合python列表中支付数据类型订单
问题描述:
我有这样的列表['car', 'truck', 8, 4, 'bus', 6, 1]
和输出应为['bus', 'car', 1, 4, 'truck', 6, 8]
换句话说,它应该按字母顺序排序所有单词,并按数字顺序排序所有整数。我怎样才能做到这一点?排序混合python列表中支付数据类型订单
答
通过分离型的值,然后进行排序每种类型的值,然后产生结果:
# The input
a = ['car', 'truck', 8, 4, 'bus', 6, 1]
# Collect the values by type
d = {}
for x in a:
d.setdefault(type(x), []).append(x)
# Sort each type
d = {k: iter(sorted(v)) for k, v in d.items()}
# The result list
result = [next(d[type(x)]) for x in a]
print(result)
打印:
['bus', 'car', 1, 4, 'truck', 6, 8]
+0
我很好奇它将如何与负整数 –
+0
@AlicePolansky然后测试它? –
什么你试过吗? –
所有标准分类操作 –
为什么4 ngoldbaum