Python 3.6.3中使用.add()的explored变量对应哪种数据结构?
这是Python的集合(set)数据结构!
嘿,这个问题太常见啦,你遇到的explored变量是Python里的集合(set),完全契合你描述的所有特征:
- 初始化方式:
explored = {rootId}这种用大括号包裹单个元素的写法,在Python里就是集合的初始化语法。要注意和字典区分:字典的大括号里必须是键: 值的键值对格式,而集合里只有独立的元素,没有键值关联——这正好对应你说的“不存在键值关联”的情况。另外提个小细节:如果要创建空集合,得用set(),直接写{}会被Python解析成空字典哦。 add()方法:集合本身就自带add(elem)方法,专门用来向集合中添加单个元素,这是字典没有的方法(字典添加元素一般是直接赋值dict[key] = value或者用update()方法)。
给你举个简单的示例验证一下:
rootId = 100 explored = {rootId} # 此时explored是集合,内容为 {100} explored.add(200) print(explored) # 输出: {100, 200}
集合的核心特性是元素唯一性,添加重复元素不会报错,只是不会有任何变化,这在很多场景(比如遍历图的时候记录已访问节点)特别有用,估计你这段代码就是类似的场景~
内容的提问来源于stack exchange,提问作者xYjoeYx
相关产品推荐
相关产品推荐

