2024-04-17 22:25:40 发布
网友
我需要使用sorted()函数才能从这里得到:
sorted()
test2 = [1,'2',3,'4',5,'A']
到这里(创建一个新列表,它首先有排序的整数,然后有排序的字符串):
test2 = [1,3,5,'2','4','A']
分别过滤数字和字符串,然后连接它们。你知道吗
num=list(filter( lambda x: type(x)==int , test2 )) string=list(filter( lambda x: type(x)==str , test2 )) sorted(num)+sorted(string)
试试这个:
test2 = sorted([i for i in test2 if isinstance(i, int)]) + \ sorted([i for i in test2 if isinstance(i, str)])
sorted(test2, key=lambda x: (isinstance(x, str), x))
这取决于False < True和元组是按字典顺序排序的。你知道吗
False < True
元组通常用于按多个度量进行排序。 考虑一下:
key=lambda x: isinstance(x, str)
sorted的key关键字参数告诉它按给定可调用的结果而不是变量本身对值进行排序。 这个键将为整数返回False,为字符串返回True。由于^{} is equivalent to ^{} and ^{} to ^{},False被认为更小,所有整数将在列表中首先排序。你知道吗
sorted
key
False
True
这只是我们想要的一半,因为整数和字符串之间没有排序。这是元组输入。以上关键功能:
key=lambda x: (isinstance(x, str), x)
返回每个元素的元组。元组首先按其第一个元素排序。如果两个元组有一个等价的第一个元素,则比较它们的第二个元素,依此类推。这被称为lexigoraphic sorting。 假设我们有这个列表:
this = ["a", 5, "b", 3]
键函数将按顺序返回:
(True, "a"), (False, 5), (True, "b"), (False, 3)
元组将首先按其第一个元素布尔值排序:
(False, 5), (False, 3), (True, "a"), (True, "b")
现在,我们有两对元组,它们的第一个元素相等。每一对将按其第二个元素进行内部排序:
(False, 3), (False, 5), (True, "a"), (True, "b")
最终的结果不是元组本身,而是每个元组的键函数的相应输入:
[3, 5, "a", "b"]
实际上,该算法不需要“两次”排序,但在概念上是相同的。你知道吗
分别过滤数字和字符串,然后连接它们。你知道吗
试试这个:
这取决于
False < True
和元组是按字典顺序排序的。你知道吗更多详细信息:
元组通常用于按多个度量进行排序。 考虑一下:
sorted
的key
关键字参数告诉它按给定可调用的结果而不是变量本身对值进行排序。 这个键将为整数返回False
,为字符串返回True
。由于^{False
被认为更小,所有整数将在列表中首先排序。你知道吗这只是我们想要的一半,因为整数和字符串之间没有排序。这是元组输入。以上关键功能:
返回每个元素的元组。元组首先按其第一个元素排序。如果两个元组有一个等价的第一个元素,则比较它们的第二个元素,依此类推。这被称为lexigoraphic sorting。 假设我们有这个列表:
键函数将按顺序返回:
元组将首先按其第一个元素布尔值排序:
现在,我们有两对元组,它们的第一个元素相等。每一对将按其第二个元素进行内部排序:
最终的结果不是元组本身,而是每个元组的键函数的相应输入:
实际上,该算法不需要“两次”排序,但在概念上是相同的。你知道吗
相关问题 更多 >
编程相关推荐