python基础(元组、字典、集合)

tuple 元组

,其实跟列表差不多,存一组数,一旦创建,不能修改。叫做只读列表
tuple1 = (1,2) tuple2 =1,2 tuple2 = 1, tuple2 = tuple([123]),
元组和列表的区别
特性: 不可变 元组本身不可变(不能利用索引修改里面元素的数值),如果元组中包含其他可变元素,那么这些可变元素可以改变
操作:
Tuple.index(self, value, start=None, stop=None)
Tuple. count(self, value)
Tuple.[:]

字典{用大括号}

采用键值对的形式进行保存
字典 特性
1.key-value结构
2.key必须为不可变数据类型、必须唯一,不可位列表
3.可存放任意多值、可修改、可以不唯一
4.无序
5.查找速度快
a = {} 或者 a = dict()
打印字典中某个数值的时候,使用dict[x]。使用的是中括号,x代表的是键的名字.
两个重要的点需要记住:
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住(后一个把前一个相同的键对应的数值覆盖)

2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行。
注意:1字典的键值是"只读"的,所以不能对键和值分别进行初始化
2字典是支持无限极嵌套的
操作:
1.Dict.fromkeys(seq, value)
将创建一个新字典,序列中的每个元素成为一个新键,键对应的数值是value,如果value不指定的话,则新的字典对应的值是None
2.Dict.get(key, default=None)
返回key对应到值,若不存在,返回None
3.dict[x]返回x对应的数值,若不存在,报错KeyError
4.dict.keys() 返回字典中所有的键 可以使用 list() 来转换为列表,列表为字典中的所有键。
dict.values() 返回字典中所有的值 可以使用 list() 来转换为列表,列表为字典中的所有值。
5.dict. items()返回可遍历的(键, 值) 元组数组
6…增加
1)修改值:a[key] = value
如果key存在于字典,则修改成新的value,如果不存在,则增加一个key,对应的值是value
2)dict. setdefault(key, default=None)
如果键不已经存在于字典中,将会添加键默认值是None。如果存在则不修改寄存的值
3) update(dict2)
字典参数 dict2 的 key/value(键/值) 对更新到字典 dict 里,如果存在同样的key,则覆盖原来的key
7.删除

  1. dict. popitem()随机返回并删除字典中的一对键和值
  2. dict. pop(key[,default]) 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。
    遍历时候推荐使用一下方法不推荐使用 dict.items()方法:
    For I in dict.keys();
    Print(“{} => {}”.format(I,dict[i]))
    两者区别:dict.items()将元素转黄成元组在打印,当数据量过大时消耗内存过大,耗时长。

集合

集合(set)是一个无序不重复元素的序列。
特征:

  1. 确定性
  2. 互异性(去重)
  3. 无序性(集合中的元素没有先后之分,(1,2,3)和(2,3,1)是一样的)
  4. 整数,浮点数,布尔值,复数,字符串,元组,冰冻集合,但是不能有列表
    定义:
    parame = {value01,value02,…}
    parame = set()rd
    a = set((“hello”))
    print(a)
    a = set(“hello”)
    print(a)
    {‘o’, ‘l’, ‘h’, ‘e’}
    {‘o’, ‘l’, ‘h’, ‘e’}
    创建一个含有一个元素的集合

    a = set((“hello”,))
    print(a)
    实行结果:{‘hello’}
    减法:a – b: 只找集合a中包含元素
    a = set(“qwer123”)
    b = set(“qwcd1”)
    print(a - b)
    实行结果:{‘3’, ‘r’, ‘2’, ‘e’}
    a | b: 集合a或b中包含的所有元素
    a = set(“qwer123”)
    b = set(“qwcd1”)
    print(a | b)
    实行结果:{‘2’, ‘r’, ‘3’, ‘c’, ‘e’, ‘d’, ‘1’, ‘w’, ‘q’}
    a & b:集合a和b中都包含了的元素
    a = set(“qwer123”)
    b = set(“qwcd1”)
    print(a & b)
    实行结果:{‘1’, ‘w’, ‘q’}
    a ^ b:不同时包含于a和b的元素
    a = set(“qwer123”)
    b = set(“qwcd1”)
    print(a ^ b)
    实行结果:{‘e’, ‘3’, ‘2’, ‘r’, ‘d’, ‘c’}

增加集合:

  1. s.add( x )
    将元素 x 添加到集合 s 中,如果元素已存在,则不进行任何操作。
  2. s.update( x )
    还有一个方法,也可以添加元素,且参数可以是列表,元组,字典. x 可以有多个,用逗号分开。(二维列表为什么不能添加?)
    s.update( {“字符串”} ) 将字符串添加到集合中,有重复的会忽略。
    s.update( “字符串” ) 将字符串拆分单个字符后,然后再一个个添加到集合中,有重复的会忽略。
    删除:
    1.s.remove( x )
    将元素 x 添加到集合 s 中移除,如果元素不存在,则会发生错误。
  3. s.discard( x )
    此外还有一个方法也是移除集合中的元素,且如果元素不存在,不会发生错误。(是否只能删除一个元素,而列表和元祖等删除就发生错误)
    a.discard([2, 3])
    TypeError: unhashable type: ‘list’
  4. s.pop()
    随机删除集合中的一个元素(没有随机删除,只是删除了第一个元素)
    其他:
  5. len(s)
    求集合的长度
  6. s.clear()
    清空集合
  7. x in s
    判断元素是否在集合中存在
    difference()

4.差集
格式:集合1.difference(集合2)
返回值:集合
操作:获取存在于集合1但是不存在与集合2中的数据的集合
difference_update()

5.差集 更新
格式:集合1.difference(集合2)
返回值:无 直接将结果赋值给集合1
操作:获取存在于集合1但是不存在与集合2中的数据的集合
intersection()

6.交集
格式:集合1.intersection(集合2)
返回值:集合
操作:获取即存在于集合1又存在于集合2中的数据组成的集合
intersection_update()

7.交集更新
格式:集合1.intersection_update(集合2)
返回值:None 直接将结果赋值给集合1
操作:获取即存在于集合1又存在于集合2中的数据组成的集合
union()

8.并集
格式:集合1.union(集合2)
返回值:集合
操作:将集合1和集合2中所有数据新建一个集合(去重)
update()

9.并集更新
格式:集合1.update(集合2)
返回值:无 直接将结果赋值给集合1
操作:将集合1和集合2中所有数据新建一个集合(去重)
issuperset()

10.检测一个集合是不是另外一个集合的超集
格式:集合1.issuperset(集合2)
返回值:布尔值
issubset()

11.检测一个集合是不是另外一个集合的子集
格式:集合1.issubset(集合2)
返回值:布尔值
issubset

isdisjoint()

11.检测2个集合是否不相交
格式:集合1.isdisjoint(集合)
返回值:布尔值
symmetric_difference()

12.对称差集操作
格式:集合1.symmetric_difference(集合2)
返回值:集合
操作:将集合1和集合2不相交的部分取出组成的新的集合
symmetric_difference_update()

13.对称差集更新操作
格式:集合1.symmetric_difference(集合2)
返回值:None 直接将结果赋值给集合1
操作:将集合1和集合2不相交的部分取出组成的新的集合
注意:集合可以有任意数量的元素,它们可以是不同的类型(例如:数字、元组、字符串等)。但是,集合不能有可变元素(例如:列表、集合或字典)
冰冻集合/固定集合 frozenset
冰冻集合就是一旦创建,不可以在进行任何修改的集合。
创建空的冰冻集合
变量 = frozenset()
创建多个元素的集合
变量 = frozenset(容器类数据)
冰冻集合的遍历
for 变量 in 冰冻集合:
使用变量
推导式:
普通的集合推导式
变量={i for i in 集合}
带有判断条件的推导式
变量={i for i in 集合 if}
多循环推导式
变量 = {i+j for i in 集合1 for j in 集合2}
带有判断条件的多循环推导式
变量 = {i+j for i in 集合1 for j in 集合2 if 条件表达式}

猜你喜欢

转载自blog.csdn.net/weixin_42970234/article/details/84059968