
'''
列表
可变序列 可重复 有序 【】
'''
import operator
#创建列表的第一方式
lst=['hello','word,',98]
print(lst)
print(lst[0],lst[-3]) #顺着进行是0 1 2 3 4 5 6 7逆着数是-1 -2 -3 -4
#创建列表的第二种方式
lst=list(['hello','wwww',96])
print(lst)
print(lst.index('wwww'))#查找第一个索引这个和数的第一个索引是lst.index(' 没有的额话就会报错
print(lst.index('hello',0,4)) #在定义的范围内进行查找 索引已范围已经定好
#修改一个值
lst=[10,20,30,40]
lst[2]=100
print(lst)
#修改多个值
lst[1:4]=[200,300,400,500,600]
print(lst)
#默认从小到大
lst=[10,98,50,232,2652,51]
print('排序前:',lst)
print('----------通过制定关键字进行排序--------')#直接操作就会在刚刚的进行边
lst.sort()
print(lst)
#进行翻转就变成了从大到小
lst.sort(reverse=True)
print(lst)
print('------使用内置函进行排序----')
lst2=sorted(lst,reverse=True) #内置函数会返回一个lst新的
print(lst)
#元素的添加只加一个 append
lst=[10,20,30]
print(lst,id(lst))
lst.append(100)
print(lst,id(lst))
#进行多个元素的添加 extende
lst2=['hello','word']
lst.extend(lst2)
print(lst)
#在列表中的任意一个元素添加一个元素
#指定位置进行插入
lst.insert(1,90)
print(lst)
print('-------------在任意一个位置进行插入多个--------')
lst3=[True,False,'Hello']
lst[1:]=lst3 #后边的进行切掉并进行覆盖
print(lst)
#进行移除
lst=[10,20,30,40,50,60]
lst.remove(30)
print(lst)
#根据索引移除元素
lst.pop(1)
#指定索引为可以进行弹出
print(lst)
lst.pop()
#不指定索引就是进行弹出最后一个
print(lst)
lst=[10,20,30,540,232,3232]
#切片操作就是进行将其分割开来 1:3
lst2=lst[1:3]
#找出其索引为1-2的
print(lst2)
#清空
lst[1:3]=[]
lst.clear()
del lst
lst1=[ i for i in range(10)]
print(lst1)
lst2 =[ i*i for i in range(10)]
print(lst2)
print(lst2[-1])
num=[10,20,30,40,6,2,5,2]
print(num[0:-2])
del lst2[2]
print(lst2)
print(len(lst2))
for i in lst2:
print(i,end='\t')
print(1 in lst2)
#进行拼接
lst2+=[5,6,6,5,5,6,6,5]
print(lst2)
print(max(lst2))
lst3=[2,5,6,6]
lst4=[lst2,lst3]
print(lst4[0][1])
print(operator.eq(lst4,lst3))
print(lst2.count(1))
lst2.pop()
'''
元组
不可变序列 可重复 有序
不鞥修改
'''
#第一种建立
tuple1=('F','G','A','A')
print(tuple1)
#第二种建立 直接胜率括号
tuple3="kk","word",98
print(tuple3)
#直接使用内置函数
t3=tuple(('python','word',98))#两个括号
print(t3)
#有一个的数字的经常用,隔开
lst=[1,]
print()
#建立空的
lst=[]
lst=list()
t4=()
t4=tuple()
d={}
d1=dict()
'''
元组的遍历
'''
#直接利用索引进行输出
tupl=(1,2,3,4,5,6,7,8,8,)
print(tupl[1],tupl[2],tupl[3])
for item in tupl:
print(tupl[item])
'''
可变序列就是(列表 字典 集合) 可以对对其增删操作 对象地质不发生改变
不可变序列(字符串 ,元组) 美欧增删操作
'''
print(tupl[1:5])
tupl2=(5,6,6,9)
tupl2+=tupl
#进行合并
print(tupl)
del tupl
tu=('Hi',)*4
print(tu,type(tu))
'''
字典 可变序列
key 可重复 value不可重复 无序 {key:Value}
'''
#第一种使用{进行创建
sc={'张三':100,'李四':98,'王无':45}
print(sc,type(sc))
#第二种使用dict进行创建
#直接用等于号 相当于转过去了
student=dict(name='sds',age=20)
print(student)
#获取数值
print(sc['张三'])
#没有就会报错
print(sc.get('张三'))
print(sc.get('kk','ss'))#这个没有就会进 进行提示None默认 可以进行修改
print(sc.get('李四'))
item1=['fr','book','other1']
price1=[15,5454,5454]
#直接进行打包操作
i={item:price for item ,price in zip(item1,price1)}
print(i)
kk={i:j for i,j in zip(item1,price1)}
'''
.upper该大写
.title()首字母大写
.lower()小写
'''
#进行遍历操作
for i in sc:
print(i,sc.get(i))
#字典视图
keys=sc.keys()
#获取所有的keys
print(list(keys))
print(tuple(keys))
print(keys)
#过去所有value
ve=sc.values()
print(ve)
print(type(ve))
print(list(ve))
print(tuple(ve))
#获取所有的key-Value
#湖区全部用item
item=sc.items()
print(item)
print(list(item))
print(len(sc))
sc['张三']=97
#进行修改
print(sc)
#sc.clear()#清空字典
#del sc 删除字典
sc1=sc.copy()
#进行谈价字典元素
# sc.setdefault()
print(sc)
sc.update(sc1)
print()
sc.update(sc1)
print(sc)
sc.pop('张三')#将里边这个元素进行删除
sc.popitem()#返回最后一个并删除
'''
集合的创建
可变序列,不可重复,无序 {
集合就是没有value的字典
第一种使用{}
'''
s={1,2,3,4,5,6,6+6}
print(s,type(s)),
'''
使用内置函数创建
'''
s2=set(range(1,10))
s4=set(('python'))
#集合中的元素
print(s4,type(s4))
s5=set({1,2,3,4,5,6})
print(s5,type(s5))
s6=set()
print(s6,type(s6))
'''
集合之间的关系
'''
#两个集合是否相等
k1={10,20,30,40}
k2={10,20,30,40}
print(k1==k2)
#集合是否是另一个集合的子集
s1={10,20,30,40,50,60,70,80}
s2={10,20,30}
s3={100,200,300}
print(s2.issubset(s1))
print(s3.issubset(s2))
'''
一个集合是否是另一个集合的超集
'''
print(s1.issuperset(s2))
print(s3.issubset(s1))
'''
判断是否相交
#不想交返回True
'''
print(s2.isdisjoint(s1))
print(s2.isdisjoint(s3))#不想交返回True
lst={i for i in range(10)}
print(lst,type(lst))
lst2={i for i in range(10) if i%2==0}
print(lst2)
'''
集合的相关操作
'''
#进行增加操作 add增加一个 update增加多个可以增加元组里边的数 也可以增加列表里边的数 直接提取出来增加
s={10,20,405,30,60}
s.add(80)
print(s)
s.update({80,56,58})
print(s)
s.update((577,89,5,55))
print(s)
s.update([899,8,9,9,8,8,8,8,8])
print(s)
#删除操作
# s.remove()
#没有直接抛出异常
print(s)
s.discard(100)
#没有不会抛异常 discard
print(s)
s.pop()#pop进行删除任意一个元素
print(s)
s.clear()
print(s)
del s
s1={10,20,30,40}
s2={20,30,40,50,60}
print(s1.intersection(s2))
print(s1&s2)
#交集intersection &
#并集 s2|s1 或者union
print(s2.union(s1))
print(s2|s1)
#s1中特有的
print(s1-s2)
print(s1^s2) #两个特有的