python - 在 Python 中,何时使用 Dictionary、List 或 Set?

什么时候应该使用字典、列表或集合?

是否有更适合每种数据类型的场景?

最佳答案

list 保持顺序,dictset 不:当你关心顺序时,你必须使用 list(当然,如果您选择的容器仅限于这三个 ;-))。

dict 将每个键与一个值相关联,而 listset 只包含值:显然,用例非常不同。

set 要求项目是可散列的,list 不要求:如果您有不可散列的项目,则不能使用 set并且必须改为使用 list

set 禁止重复,list 不:也是一个关键的区别。 (可以在 collections.Counter 中找到“multiset”,它将重复项映射到多次出现的项目的不同计数 - 您可以将其构建为 dict ,如果由于某些奇怪的原因您无法导入 collections,或者在 2.7 之前的 Python 中作为 collections.defaultdict(int),使用项目作为键和关联值作为计数)。

检查 set(或 dict,用于键)中的值的成员资格非常快(大约需要一个常数,很短的时间),而在列表中在平均和最坏情况下,它所花费的时间与列表的长度成正比。所以,如果你有可散列的项目,不关心顺序或重复,并且想要快速的成员资格检查,setlist 更好。

https://stackoverflow.com/questions/3489071/

相关文章:

python - 从另一个 Python 脚本运行 Python 脚本,传入参数

python - 什么是__main__.py?

python - 了解 map 功能

python - 将目录永久添加到 PYTHONPATH?

python - 使用 Python 实现触摸?

python - 为什么 IoC/DI 在 Python 中不常见?

python - 在 Python 中比较 float 是否相等的最佳方法是什么?

python - 如何保持键/值与声明的顺序相同?

python - python中dict的深拷贝

python - 如何使用 pip 安装 Python MySQLdb 模块?