Python splat/unpacking/* 集合运算符:结果总是排序的吗?
Python splat/unpacking/* operator on sets: is the result always sorted?
splat/unpacking 运算符 * 在应用于整数集时是否总是排序?
示例 1(整数):
In [1]: [*{8,3,6,3,2,1}]
Out[1]: [1, 2, 3, 6, 8]
计数器示例 2(字符串):
In [615]: [*{'b','d','a','c','e'}]
Out[615]: ['a', 'd', 'c', 'b', 'e']
反例3(元组):
In [1]: [*{(2,3),(2,2),(1,2),(1,1)}]
Out[2]: [(2, 3), (1, 1), (1, 2), (2, 2)]
不,不是
print([*{8,3,6,3,2,1,108,109,255,569}])
给我:
[1, 2, 3, 6, 8, 108, 109, 569, 255]
您不能对集合进行排序。如果您需要对它们进行排序,则必须将它们转换为列表或使用特定模块,例如 sortedcontainers
splat/unpacking 运算符 * 在应用于整数集时是否总是排序?
示例 1(整数):
In [1]: [*{8,3,6,3,2,1}]
Out[1]: [1, 2, 3, 6, 8]
计数器示例 2(字符串):
In [615]: [*{'b','d','a','c','e'}]
Out[615]: ['a', 'd', 'c', 'b', 'e']
反例3(元组):
In [1]: [*{(2,3),(2,2),(1,2),(1,1)}]
Out[2]: [(2, 3), (1, 1), (1, 2), (2, 2)]
不,不是
print([*{8,3,6,3,2,1,108,109,255,569}])
给我:
[1, 2, 3, 6, 8, 108, 109, 569, 255]
您不能对集合进行排序。如果您需要对它们进行排序,则必须将它们转换为列表或使用特定模块,例如 sortedcontainers