# 一、元组:可以理解成不可变的列表。用来存放多个值,只有读的需求没有改的需求,
# 在元素个数相同的情况下使用元组更加节省空间,效率更高。
# 定义:
# 包含在小括号内用逗号隔开的元素。 doc=(1,2,3,4,5,6)
#总结:元组可以有序的存放多个值,为不可变类型。
#常用操作+内置的方法:
#优先掌握的操作:
#1、按索引取值(正向取+反向取):只能取
# doc=(1,2,3,4,5,6)
# print(doc[1])正向取值
# print(doc[-2])
# 2、切片(顾头不顾尾,步长)
# doc=(1,2,3,4,5,6)
# print(doc[1:4])
# tuple创建一个新的元组
# 式列:
# print(tuple('hello'))
# for i in range(10000):
# print(i)
# print(tuple(range(10000)))
#3、长度
# doc=(1,2,3,4,5,6)
# print(len(doc))
#4、成员运算in和not in
# doc=(1,2,3,4,5,6)
# print(1 not in doc)
#5、循环
# doc=(1,2,3,4,5,6)
# for i in doc:
# print(i)
# t=('a','b','c','c')
# t[0]=1111
# print(t.index('a')) #index获取元组中元素的索引值
# print(t.count('b')) #count获取元组中相同元素的个数
#二 字典:{}内以逗号分隔多个元素格式为key:value,优点存取速度快,每一个值都对应一个key,
# 其中key为不可变类型,value可以为任意类型的值。key值不能重复。
# dic={'x':1,'y':1,'x':1111}
# print(dic)
总结:
1、存多个值
2、无序
3、可变
# 3 常用操作+内置的方法
#优先掌握的操作:
#1、按key存取值:可存可取
# 取:
# dic={'name':'egon'}
# print(dic['name'])
# 存:
# dic={'name':'egon'}
# dic['age']=10,
# dic['yang']='name'
# print(dic)
#输出结果: {'name': 'egon', 'age': (10,), 'yang': 'name'}
#把key对应的值转换为小写 lower 转换为大写upper
# dic={'name':'egon'}
# dic['name']=dic['name'].upper() #lower()
# print(dic)
#2、长度len
# dic={'name':'egon','age':18}
# print(len(dic))
#3、成员运算in和not in:判断的字典的key
# dic={'name':'egon','age':18}
# print('age' in dic)
#4、删除
# dic={'name':'egon','age':18}
# res=dic.pop('name')
# print(res)
# print(dic)
# res=dic.pop('sex',None) pop()key值后可以跟,None 如果字典中没有对应的key值则反馈一个值。
# print(res)
#5、键keys(),值values(),键值对items()
# dic={'name':'egon','age':18}
# print(dic.keys())
# print(dic.keys() #取出字典中的多个key
# for x in dic.keys():
# print(x)
# print(list(dic.keys())[0])
# print(dic.values())#取出字典中的多个values
#print(dic.items())
# for k,v in dic.items(): #k,v=('name', 'egon')
# print(k,v)
# print(type(dic.items()))
#4、掌握的操作
# dic={'name':'egon','age':18}
# print(dic.get('namexxxxxxxxxxx'))#如果字典中没有对应的key值不会报错。
# print(dic['namexxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx']) #报错
#
# print(dic.popitem())#随机取值
# print(dic.setdefault('key','123'))#
# print(dic)
#setdefaul的用处:
# 1、字典有中有key,则不修改,返回原key对应的原值
# dic={'name':'egon','age':18}
# res=dic.setdefault('name','EGON')
# print('返回值',res)
# print(dic)
# 2、没有对应的key,则添加,返回添加的key对应的value
# dic={'age':18}
# res=dic.setdefault('name','EGON')
# print('返回值',res)
# print(dic) #{'age': 18, 'name': 'EGON'}
# dic.update({'x':1,'age':19})
#对与老字典来说,更新指的是,新字典中有而老字典中没有则添加,新有而老有,则覆盖
# dic={'x':1,'age':19}
# dic.update({'name':'egon','age':18})
# print(dic) #{'x': 1, 'age': 18, 'name': 'egon'}
#三、集合
#用途
# 1、 关系运算
#2、去重
# 定义方式:在{}内用逗号分隔开一个个元素
# 注意的问题
#1、集合内没有重复的元素
#2、集合的元素必须是不可变类型
#交集
# dic_1={1,2,3,4,5,6,}
# dic_2={5,6,7,8,9,10}
# print(dic_1 & dic_2)
# 并集
# print(dic_1 | dic_2)
#差集
# print(dic_2 - dic_1)
#交叉补值
# print(dic_1 ^ dic_2)
# 优先掌握,循环取值 for in 取出来的值是无序的。
# s1={'a','b','c'}
# for itme in s1:
# print(itme)
#长度len
# s1={'a','b','c'}
# print(len(s1))
#成员运算in和not in
# s1={'a','b','c'}
# print('a' in s1)
# 增加
# s1={'a','b','c'}
# for itme in s1:
# print(itme)
# s1.add() # 一次添加一个值
# s1.add(4)
# print(s1)
# s1.update({3,4,5}) #一次添加多个值
# print(s1)