Python(set/list/dict/tuple),,set集合:set是


set集合:
set是一个无序,不重复元素的集合。可嵌套列表,字典(可以for循环或者迭代的对象)。

######差集:a={11,22}b={22,33}c=a.difference(b) #a中存在,b中不存在d=b.difference(a) #b中存在,a中不存在print(c) -- {11}print(d) --{33}####增删集合add方法:是把要传入的元素做为一个整个添加到集合中,例如:>>> a = set(‘boy‘)>>> a.add(‘python‘)>>> aset([‘y‘, ‘python‘, ‘b‘, ‘o‘])#####集合update方法:是把要传入的元素拆分,做为个体传入到集合中,例如:>>> a = set(‘boy‘)>>> a.update(‘python‘)>>> aset([‘b‘, ‘h‘, ‘o‘, ‘n‘, ‘p‘, ‘t‘, ‘y‘])#删除元素#随机移除某个元素,没有会报错b={11,22,33}ret=b.pop()print(b)print(ret)#删除一个元素,没有不会报错d={1,2,3,4,5}d.discard(2)print(d)#接收可以被for循环(可迭代)的对象list = [1,2,3,4,5]set1={1,2}set.update(list)print(set1)实例:找出两个字典变化的值old_dict={ "#1":4, "#2":8, "#4":4, }new_dict={ "#1":8, "#2":8, "#3":4, #加逗号肯定不会报错,不加可能会有错误 }#取值,取出字典的keyold_key=old_dict.keys() new_key=new_dict.keys()#将key转换成集合old_set=set(old_key) new_set=set(new_key)#新中存在,旧的不存在,打印出需要删除的remove=old_set.difference(new_set) print(remove)#需要更新的,update=new_set.difference(old_set) print(update)#需要添加的add=old_set.difference(new_set)set1=set([2,3,4,5])set2=set("hello")#集合无法通过数字进行索引。print(set2)#并集,差集,交集和对称差集a=set1|set2b=set1&set2c=set1 - set2d=set1 ^ set2#增删改查set1.add(‘x‘) #添加一个元素set1.update([6,7,8]) #添加多项print(set1)#测试set1中的每个元是否都在set2中set1.issubset(set2)set1<=set2#测试set2中的每个元是否都在set1中set1 >= set2

列表:list是一种有序的集合,可以随时添加和删除其中的元素。
   用一个变量存储更多的值

eg: name=[‘sz‘,‘yz‘,‘xz‘]num=[1,2,3,4,5,6,7,8,9,1,23,4,5,54,5,5]#可以通过下标查找元素,下标从0开始>>>num[-1] #-1代表列表中最后一个元素>>>5>>>num[0] #第一个元素>>>1>>>num[-3] #取出列表倒数第三个元素>>>54 ##如果取值的下标超过列表的总长度就会报错 ****下标是从0开始################返回的值是True或falseprint(3 in num)#查看列表中有几个5print(num.count(5))#查看一个元素在列表中的下表,找到第一个值以后,不会继续查找,直接返回第一个值的下表print(num.index(5))#通过len()内置函数可以查看列表的元素个数len(num)

####切片

user=[‘zhangsan‘,‘lisi‘,‘liuwu‘,‘zhaoliu‘,‘wangqi‘,1,2,3,4]#打印出下标2到8的元素print(user[2:8])print(user[0:3]) #取0到第3个元素,不包含第4个,0可以不写print(user[:-3]) #打印从0到倒数第3个元素print(user[-3:]) #取最后三个元素print(user[::2]) #跨步取值

###增删改查

增加:user=[‘zhangsan‘,‘lisi‘,‘liuwu‘,‘zhaoliu‘,1,2,1,‘wangqi‘,1,2,3,4]user.append("test") #在列表最后追加一个元素删除:#删除为1的元素,如果有多个1,那么删除从左往右的第一个。user.remove(user[1])#删除一个内存中的数据,删头不删尾del user[3:4]更改:user[1]=‘coffee‘ #将第二个元素改为coffeeuser1 = [‘a‘,‘b‘,‘c‘,‘d‘]user2 = [‘e‘,‘f‘,‘g‘,‘h‘]#插入数据user.insert(1,user1) #插入一个数据,下标为1user.insert(3,user2) #插入一个数据,下标为3#统计user.count(‘1‘) #统计1元素的个数user.sort() #将列表排序user.reverse() #将列表反转

#遍历列表

for i in user:print(i)#实例 循环更改列表中元素的值num = [1,2,3,4,5,3,[3,3,3],6,7,7,8,9,9,9,9,9,5,6,6,6,7]#num.count统计列表中这个元素有几个#这里有几个,就循环几次for i in range(num.count(9)):#这里统计每个元素的下表是几real = num.index(9)#通过下标来更改元素的值num[real] = ‘HHHHHHHHHHH‘#打印print(num)############################实例: 将新列表合并到num列表里num = [1,2,3,4,5,3]num1 = [‘zeng‘,‘xian‘]num.extend(num1)print(num)

元组
另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改。
tuple一旦初始化,就不能更改

例如name=(‘test‘,‘study‘)同样可以通过下标来查询name[0]name[1]如果定义只有1个元素的元组t1 = (1) 这里就会有歧义,你定义的不是元组,是1这个数,()当成了数学中的括号,所以你在定义一个元素时,后面要加一个逗号。t1 = (1,)tuple = (1,2,3)n1,n2,n3=tuple #把n1,n2,n3分别赋值给元组中的1,2,3个元素print(n1,n2,n3)

字典: 无序,使用键值对存储,具有极快的查找速度。
dict特点:
查找和插入的速度极快,不会随着key的增加而变慢;
需要占用大量的内存,内存浪费多。
list:
查找和插入的时间随着元素的增加而增加;
占用空间小,浪费内存很少。

info = {‘name‘:‘zeng‘,‘job‘:‘IT‘,‘age‘:‘22‘}print("查看key为name的value: ",info[‘name‘]) #查看key为name的valueinfo[‘job‘]=‘devs‘ #将job的value重新赋值info[‘city‘]=‘bj‘ #如果字典中有city这个key就把对应的value改成bj,如果没有,就创建一个key-valueinfo.pop(‘age‘) #删除key为age的数据,跟del info[‘age‘]一样info.popitem() #随机删除一条数据,如果dict为空时,此语法会报错info.items() #将dict的key value转换为列表的形式显示print(info.get(‘nme‘)) #如果字典中存在name这个key,则返回对应的value否则返回None。print(info.get(‘nmna‘,‘没有这个key!‘)) #如果字典中存在name这个key,则返回对应的value否则返回自定义的值info.clear() #清空字典info.fromkeys([1,2,3],‘hehe‘) #根据列表来创建dict的key,后面hehe是默认的value,不加是Noneinfo.setdefault(‘name‘,‘nm‘) #如果字典里存在name这个key,则返回value,否则创建一个叫name的key,并将value设置为nm。#用dict2这个字典去更新info,如果存在相同的key,那么使用dict2中的key,如果dict2中的key在info没有。那么创建相应的记录dict2={‘k‘:1,‘h‘:2}info.update(dict2)print(info)

####遍历字典的方法

#1.for循环打印出字典中的keyfor i in info:print(i)#2.首先把字典转换为列表。并把key value值转换为元组,所以你可以在每次循环时赋值两个变量进去。c=info.items()print(c)for a,b in c:print(a,b)

Python(set/list/dict/tuple)

相关内容

    暂无相关文章

评论关闭