set()顺序问题
本帖最后由 CtrlCV工程師 于 2022-1-21 14:52 编辑>>> favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
>>> favorite_languages.values()
dict_values(['python', 'c', 'ruby', 'python'])
>>> set(favorite_languages.values())
{'c', 'python', 'ruby'}
为什么我用values()输出的顺序和用set()输出的顺序不一样?
set 是创建集合对象函数,集合有三大特性:确定性、互异性、无序性
确定性指的是 一个元素 要么属于这个集合,要么不属于
互异性指同一集合中的元素都互不相同
无序性指集合中的元素是无序的
所以虽然打印出来显示上是有顺序的,这与 Python 此时的运行环境与开发者、操作系统可能都关系,也有可能只是因为这样的打印顺序也许更有效率
favorite_languages = {
'jen': 'python',
'sarah': 'c',
'edward': 'ruby',
'phil': 'python',
}
print(list(favorite_languages.values())) # 有序
print(tuple(favorite_languages.values())) # 有序
print(set(favorite_languages.values())) # 无序
页:
[1]