30天python基础(字典,集合)

    技术2025-06-19  9

    ⼀、集合(set) 特点:不允许有重复元素,如果添加重复元素,则会⾃动过滤,可以进⾏交集、并 集的运算。 本质:⽆序且⽆重复元素的数据结构 1 创建集合

    s1 = set() #空集合 不能是{},这是字典 s2 = {1,2,3,4} print(s1) print(set([30,40,50])) #通过列表创建 print(set((11,22,33))) #通过元组创建 print(set('hello')) #通过字符串创建 print(set({'name':'⼤宝','age':20})) #通过字典创建,得到⼀个键的集合 #注意:重复元素在set中会被⾃动过滤

    2 集合操作

    #1 增加 #add添加不可变元素 s1.add(5) # s1.add([6,7]) #不能添加列表,列表和字典都是不可哈希的 s1.add((6,7)) #可以添加元组元素,元组是可哈希的 print(s1) #set.update(s) s必须是可迭代的对象:列表、元组、字符串、字典 #update会把列表、元组、字符串打碎添加到集合中 s1 = {1,2,3,4} s1.update([5,6]) s1.update((7,8)) s1.update('hello') s1.update({'1':10,'2':20}) #将字典的键添加到s1 print(s1) #2 删除 #set.remove(elem) set3 = {1,2,3,4,5,6} set3.remove(4) #直接删除指定元素 print(set3) print(set3.pop()) #删除任意元素,并返回该元素的值 print(set3) set3.discard(10) #删除的元素不存在,不会报错 #set3.remove(10) #如果元素不存在,则报错:KeyError #3元素个数 print(len(set3)) #4 成员操作 print(2 in set3) #True #5 并、交、差集 s1 = {1,2,3,4,5} s2 = {3,4,5,6,7} print(s1 | s2) #并 print(s1 & s2) #交集 print(s1 - s2) #差集

    ⼆、字典 字典属于⽆序序列,元素存放⽆序,是通过哈希⽅式进⾏数据存取的,字典是⼀个 可变容器,字典中保存⼀个个的键值对: key : value。我们通过key来获取对应的 值,很类似我们的汉语字典。

    字典中键必须是唯⼀的,必须是不可变类型字典查找速度⽐较快

    2.1 字典的创建

    d1 = {} #空字典 d1 = dict() #空字典 d2 = {'name':'麻辣⻰虾','taste':'美味'} d3 = dict(a=1,b=2) d4 = dict([('a', 1),('b', 2)]) d5 = dict({'a':1,'b':2})

    2.2 字典操作

    #存储多个学⽣的成绩 dict1 = {"jack":78,"hanmeimei":99,"lilei":60} print(dict1) #1.元素访问 #获取 语法:字典名[key] print(dict1["hanmeimei"]) #print(dict1["tom"]) #KeyError: 'tom' #字典名.get() result = dict1.get("lilei",'1') # 如果没有lilei这个键,返回默认值1,不 会报错 print(result) #2.添加:当指定的键不存在的时候,则表示添加 dict1["tom"] = 70 print(dict1) #但是,如果键已经存在,则表示修改value dict1["jack"] = 50 print(dict1) #3. 删除 pop 删除并返回指定键对应的值 #注意:通过键,直接删除整个键值对 dict1.pop("jack") print(dict1) del dict1['lilei'] #删除键值对,不返回值 dict1.clear() #清空字典 del dict1 #删除整个字典 #4 字典合并 a = {1:'hello'} b = {2:'world'} a.update(b) print(a) #5.遍历 dict2 = {"jack":78,"hanmeimei":99,"lilei":60} #⽅式⼀:只获取键 for key in dict2: value = dict2[key] print(key,value) #⽅式⼆:只获取值 #values,得到的结果是⼀个列表,当做列表处理 print(dict2.values()) for value in dict2.values(): print(value) #⽅式三:同时获取键和值 #items,得到的结果是⼀个列表,列表中的元素是元组 print(dict2.items()) #[('jack', 78), ('hanmeimei', 99), ('lilei', 60)] for key,value in dict2.items(): print(key,value) #⽅式四 for index,key in enumerate(dict2): value = dict2[key] print(index,key,value) #6.获取键值对的个数 print(len(dict1)) #7.成员操作 d2 = {'name':'麻辣⻰虾','taste':'美味'} print('name' in d2) #判断某个键是否在列表中

    数据类型的转换 int(x) 将x转换为int类型 float(x) 将x转换成浮点型 str(x) 将x转换成字符串 bool(x) 转换成bool类型 的True False dict(x) 将序列x转换成字典 list(x) 将序列x转换成列表 set(x) 将序列x转换成集合 tuple(x) 将序列x转换成元组 布尔值 在python中,能够解释为假的值有:None、0、0.0、False、所有的空容器(空列表、空元组、空字典、空集合、空字符串),其它是真 zip函数 zip() 函数⽤于将可迭代的对象作为参数,将对象中对应的元素打包成⼀个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不⼀致,则返回列表⻓度与最短的对象相同。 语法:zip(iterable1,iterable2, …) 参数说明:iterable – ⼀个或多个可迭代对象(字符串、列表、元祖、字典)

    a = [1,2,3,4] b = [2,3,4] res = zip(a,b) print(list(res)) #[(1, 2), (2, 3), (3, 4)] #可以使⽤for-in 遍历 for x,y in zip(a,b): print(x,y)
    Processed: 0.012, SQL: 9