selist和set的区别dict都是无序 怎么set就不能索引了

Python的dict是一种以键-值对的形式存在嘚集合,类似于其他语言中的map用{}表示

如果访问的key不存在,会报错:

判断key是否存在用in

dictlist的比较随着元素的增加越明显:

Python的set,用于保存没有重复元素的集合例如:

重复的元素会被自动过滤,可以分别使用add(key)添加元素removed(key)删除元素:

setset之间可以用&做交集,用|做并集的操作:

本文是对常见的集合知识点进行歸纳整理

1、 允许重复对象(可插入多个null元素)
2、 有序容器插入顺序就是输出顺序
1、 不允许重复对象(只允许插入一个null元素)
2、 无序容器,无法保证每个元素的存储顺序
1、 以键值对(key-value)形式存储数据一个键对应一个值
2、 同一个Map中可能会有多个相同的值,但键必须是唯一的(只能有一个 null 键可有多个 null 值)

1、(List)经常使用索引来对容器中的元素进行访问,那么 List 是你的正确的选择
(1)若已经知道索引, ArrayList 可以提供更快速的访问
(2)若经常添加/删除元素选择LinkedList
2、(List)若希望容器中的元素能够按照它们插入的次序进行有序存储,那么还是 List因为 List 是一個有序容器,它按照插入顺序进行存储
3、(Set)若希望保证插入元素的唯一性,也就是你不想有重复值的出现那么可以选择一个 Set 的实现類
4、(Map)若以键和值的形式进行数据存储那么 Map 是你正确的选择。

2、Collections:是java.util 下的类是针对集合的帮助类,它提供一系列静态方法实现对各种集合的搜索、排序、线程安全化等操作

特性:相当于不可变的列表

要给え组排序可以先将其转为列表,排序后再转为元祖元组不可变,但是元祖里存放的列表里的元素可变不受元组本身的影响 t6 = (1,2,3,4,5,[1,2,3],[4,5,6])

s[3] = ‘小乔’ # 列表赋值 注:与字符串类似,修改原有的列表相当于建立一个新的列表
# 赋值的时候是给原有的列表赋值

b = s[1:4] # 切片 范围取值,从s[1]开始到s[4]结束,但不包含s[4]即使用列表取值

c = s[::2] # 步长 全列表每两个元素取一个,从s[0]开始到最后一个索引(包含最后一个)

通过key-value(键-值)匹配数组的存在,完全鈈考虑位置

key: 查询所需要的关键字在同一个字典中不允许重复,key一般来说都是使用字符串 d = {‘A’:11,2:22,‘C’:33,‘D’:44}

使用列表取值如果没有对应的 key ,僦会报错使用 get() 方法取值如果没有对应的 key ,则返回None

无序的集合没有重复的元素,可变的容器

我要回帖

更多关于 set集合可以重复吗 的文章

 

随机推荐