*edit
I make
word=['I','love','hello','world','love','I']
当我转换为集合时,它会改变顺序为:
print(set(word))
output: {'world', 'I', 'hello', 'love'}
如何再次对集合进行排序
{'I', 'love', 'hello', 'world'}
*edit
I make
word=['I','love','hello','world','love','I']
print(set(word))
output: {'world', 'I', 'hello', 'love'}
{'I', 'love', 'hello', 'world'}
print(sorted(set(word)))
sorted
函数可以对你的项目进行排序并返回一个列表。
但是,如果你想要保留元素的顺序而不是对它们进行排序,你可以使用集合进行去重,并使用列表进行排序,就像这样:
def unique(items):
seen = set()
result = []
for item in items:
if item not in seen:
seen.add(item)
result.append(item)
return result
>>> word = ['I','love','hello','world','love','I']
>>> print(unique(word))
['I', 'love', 'hello', 'world']
如果你只需要一个有序的不重复值集合,可以从列表中创建一个dict
,可以通过字典推导式或dict.fromkeys
来实现。在Python 3中,字典将保留插入顺序;对于旧版本,请使用collections.OrderedDict
。字典除了键之外还有值,但你可以忽略它们。
>>> word = ['a','b','c','c','b','e']
>>> {k: None for k in word}
{'a': None, 'b': None, 'c': None, 'e': None}
>>> dict.fromkeys(word)
{'a': None, 'b': None, 'c': None, 'e': None}
sorted
,如果原始顺序与排序后的顺序不同,这个方法也能起作用。>>> word = ['f','a','b','c','c','b','e']
>>> dict.fromkeys(word)
{'f': None, 'a': None, 'b': None, 'c': None, 'e': None}
您可以将结果转换为list
或保留为dict
并添加更多值,但如果将其转换为set
,则顺序将再次丢失。与set
一样,dict
也允许快速的O(1)查找,但没有交集或并集等集合操作。
print(sorted(set(word)))
。 - undefineddict
并忽略值。 - undefined