【发布时间】:2016-06-14 05:11:24
【问题描述】:
我有一个字符串数字数组,例如:
numbers = ['10', '8', '918', '101010']
当我使用sorted(numbers) 时,我会按字典顺序对它们进行排序,例如'8' > '17'.
如何遍历按数值排序的字符串?
【问题讨论】:
标签: python
我有一个字符串数字数组,例如:
numbers = ['10', '8', '918', '101010']
当我使用sorted(numbers) 时,我会按字典顺序对它们进行排序,例如'8' > '17'.
如何遍历按数值排序的字符串?
【问题讨论】:
标签: python
您可以使用内置的sorted() 函数和int 键在比较之前将列表中的每个项目映射到一个整数:
numbers = ['10', '8', '918', '101010']
numbers = sorted(numbers, key=int)
print(numbers)
输出
['8', '10', '918', '101010']
使用此方法将根据需要输出字符串列表。
【讨论】:
【讨论】:
str() 再次获取字符串。谢谢!
如果您想保留为字符串,您可以将int 作为键传递给list.sort,它将对原始列表进行排序:
numbers = ['10', '8', '918', '101010']
numbers.sort(key=int)
【讨论】:
这是我喜欢的方式,速度非常快。
print(sorted(sorted(numbers), key=len))
【讨论】:
所有元素类型都是字符串,
>>> x=['4', '5', '29', '54', '4', '0', '-214', '542', '-64', '1', '-3', '6', '-6']
>>> max(x)
'6'
它按字母顺序“排序”单词并返回字母列表底部的单词
还有几个例子:
>>> list1 = ['kyle', 'dhamu']
>>> max(list1)
'kyle'
返回 kyle,因为 k 在 d 之后
还请记住,从 python3.7 开始,您不能混合使用字符串和整数来使用 max 函数。下面是例子
>>> mix_list = ['my', 'name', 'is', 1 ]
>>> max(mix_list)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: '>' not supported between instances of 'int' and 'str'
【讨论】: