字典:key:value形式,根据key取值,速度快,无顺序,每次打印可能都不一样,不能像列表按下标取值
定义{}
stuts={ 'name':'xiaohei', 'age':18, 'addr':'北京' } stu={ 'id':1890808, 'class':'自动化一班' } #增加 stuts['sex']="男"#若没有添加key及value,若有修改value print(stuts) stuts.setdefault('age','18')#若没有添加key和value,若有,不处理 #修改 stuts['addr']='天津武清' #删除 stuts.pop('age') del stuts['name'] print('---------------------') print(stuts) #取值 print(stuts['addr'])#取不存在的报错 print(stuts.get('addrr','beijing'))#取不存在的返回None,可以赋默认值 #取所有key,所有value print(stuts.keys()) print(stuts.values()) #将一个字典的信息添加到另一个 stuts.update(stu) print('************************') print(stuts) print(stu) print('id'in stuts)#判断key是否存在 print(stuts) print('天津武清'in stuts.get('addr'))#VALUE是否存在
#定义一个字典,存账号密码 login={ 'xioahei':'123456' } for i in range(3): name=input("请输入用户名") passwd=input("请输入密码") if name in login: print("用户已存在") else: login.setdefault(name,passwd) print(login) print('+++++++++++++++++') #获取所有的key,value,速度快 for i in login: print(i,login[i]) print('---------------------') #获取所有的key,value,速度慢 for k,v in login.items(): print(k,v)
列表生成式:
l=[i for i in range(10) if i%3==0] print(l)
切片:对list一个范围的取值
l=(1,2,3,4,5,6) #l[0]=9 #print(l)#TypeError: 'tuple' object does not support item assignment s='1214243455' sa=('abc',)#元组只有一个元素时,加个逗号 #s[2]='r'#TypeError: 'str' object does not support item assignment 不可变数据类型:int、float、字符串和元组都不能修改 m=[1,2,3,4,5,6,7,8] print(m[0:3])#[1, 2, 3] 取下标0,1,2,顾头不顾尾 m[:]#冒号前不写代表从头取值,冒号后边不写代表取到尾,冒号前后都不写代表取全部 print(m[0:6:2])#[1, 3, 5]0:6表示从下标0开始取,取到下标6之前的,:2 是步长 print(m[::-2])#负数表示从后往前取,步长是2 print(m[-1:-5:-1])#[8, 7, 6, 5]若不是取全部元素,步长为负数时,前边的下标也得是负数