对具有字符串和整数值的列表进行数字排序

2024-04-23 22:03:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在寻找一个代码,可以排序一个列表,例如列表x,其中包含整数和字符串。然后,代码将对列表x进行排序,使整数值对应于字符串进行排序。到目前为止,我已经尝试了这个代码,但它不工作。你知道吗

x =["a" 2,"c" 10, "b" 5]
x.sort()
print (x)

我希望结果是

["a" 2 "b" 5 "C" 10]

因此,列表按递增顺序进行数字排序,字符串也被打印出来。你知道吗


Tags: 字符串代码列表排序顺序数字整数sort
3条回答

使用元组列表,然后根据需要对它们进行排序,例如:

x = [('b',5),('a',2),('c',10)]
x.sort() # This will sort them based on item[0] of each tuple
x.sort(key=lambda s: s[1]) # This will sort them based on item[1] of each tuple

另一种方法是使用字典而不是元组列表,例如:

x = {'b':5,'a':2,'c':10}#This will be automatically sorted based on the key of each element

如果打印x,您将得到:

{'a': 2, 'c': 10, 'b': 5}

如果要根据每个元素的值对它们进行排序,则:

x = sorted(x.items(), key=lambda s:s[1])

这将创建一个新的元组列表,因为sorted()返回“new”排序列表,因此结果将是:

[('a', 2), ('b', 5), ('c', 10)]

如果我扣除正确,您还希望结果列表有一个整数,而原始列表有一个整数(字符也是如此)。你知道吗

我认为没有现成的方法可以做到这一点。一种可能的方法是将列表分成两个部分:一个是整数,一个是字符。然后,在对每个列表排序之后,可以根据所需的整数和字符位置合并它们。你知道吗

使用嵌套的iterable将字母与数字配对,然后按第二个元素对项目排序:

# just pairs.sort(key = lambda x: x[1])

pairs = [('a', 2), ('c', 10), ('b', 5)] 

相关问题 更多 >