# 10)reverse函数:列表元素反转
# list1 = [1,3,5,4,8]
# list1.reverse()
# print(list1) #[8, 4, 5, 3, 1]
# 11)pop 函数 移除元素
# list1 = [1,3,5,4,8]
# print(list1.pop()) #结果 8 打印删除的值,默认删除最后一个元素
# print(list1) #[1, 3, 5, 4] 打印删除后的值
# print(list1.pop(0)) #结果 1 移除指定位置的元素
# print(list1) #[3, 5, 4]
# 总结:
# 1、默认移除列表最后一个元素,并返回被删除的元素值
# 2、移除指定位置的元素list.pop(index)
# 3、在列表中pop函数是唯一一个既能改变列表元素又有返回值
# 5、python 中的元组
# 定义:元组(tuple)是Python中常用的一种数据结构。元组由不同的元素组成,
# 每个元素可以存储不同类型的数据,如字符串、数字、甚至元组。元组是'写保护' 的,
# 即元组中元素作为一个整体,创建后不能再做任何修改操作。
# 1)元组用tuple来表示 用小括号
# 元组的表示 tuple()
# tuple1 = ('china','dcs',123,'中国',['hello',888,666])
# print(tuple1) #('china', 'dcs', 123, '中国', ['hello', 888, 666])
# print(type(tuple1)) # 数据类型 <class 'tuple'>
# tuple2 = ('test',) #当元组只有一个元素时,需要在后面加一个逗号
# print(tuple2) #('test',)
# print(type(tuple2)) #<class 'tuple'>
# 2)元组中的索引取值和切片
# tuple1 = ('china','dcs',123,'中国',['hello',888,666])
# print(tuple1[2]) #结果:123
# print(tuple1[2:]) #结果:(123, '中国', ['hello', 888, 666])
# 3)元组和列表之间的转化(元组中元素作为一个整体,创建后不能再做任何修改操作)
# tuple1 = ('china','dcs',123,'中国',['hello',888,666])
# tuple1[0] = 'test' #元组当作一个整体不能直接改变
# 如果需要改变可以先转化为列表,然后改完再转化为元组
# list1 = list(tuple1)
# print(list1) #结果['china', 'dcs', 123, '中国', ['hello', 888, 666]]
# print(type(list1)) #结果<class 'list'>
# list1[0] = 'test' #索引赋值
# print(list1) #结果['test', 'dcs', 123, '中国', ['hello', 888, 666]]
# tuple12 = tuple(list1)
# print(tuple12) #结果('test', 'dcs', 123, '中国', ['hello', 888, 666])
# print(type(tuple12)) #数据类型 <class 'tuple'>
# 面试:元组可以被改变吗?当元组的元组作为一个整体时不能被改变,如果元组中有列表
# ,则可以通过二维数组的方式进行改变
# tuple1 = ('china','dcs',123,'中国',['hello',888,666])
# tuple1[4][1] = 999 #如果元组中有列表,则可以通过二维数组的方式进行改变
# print(tuple1) #结果('chin a', 'dcs', 123, '中国', ['hello', 999, 666])
# 总结:元组和列表区别
# 1、相同:都是序列类型容器对象,可以存放任意数据,支持切片和迭代
# 2、不同:list是可变的对象,元组是不可变的对象
# 1)列表是可变的,元组不可变
# 2)列表是[],元组()表示
# # 3)元组比列表更安全,元组的处理速度比列表快
# # 4)列表中内置函数比元组多
# 6、python 中 的字典
# 字典的表达:dict = {}
# 字典是无序的是key:value 的形式存储数据
# 1)字典的第一种第一方法
# dict1 = {'name':'xiaoduan','age':18}
# print(dict1) #{'name': 'xiaoduan', 'age': 18}
# print(type(dict1)) #<class 'dict'> 字典
# 2)字典第二种定义方法
# test = [('name','xiaoduan'),('age',18)]
# dict1 = dict(test)
# print(dict1) #{'name': 'xiaoduan', 'age': 18}
# print(type(dict1)) #<class 'dict'> 字典
# 3)字典的添加
# dict1 = {'name':'xiaoduan','age':18}
# dict1['class'] = 1833 #字典赋值添加
# print(dict1) #{'name': 'xiaoduan', 'age': 18, 'class': 1833}
# 4)字典覆盖
# dict1 = {'name':'xiaoduan','age':18}
# dict1['age'] = 20 #字典通过键赋值
# print(dict1) #{'name': 'xiaoduan', 'age': 20}
# 5)取出字典中的键 ==》for 遍历
# dict1 = {'name':'xiaoduan','age':18}
# for i in dict1.keys():
# print(i) #name age
# 6)取出字典中的值 ==》for 遍历
# dict1 = {'name':'xiaoduan','age':18}
# for i in dict1.values():
# print(i) #xiaoduan 18
# 7)通过键取出具体的值
# dict1 = {'name':'xiaoduan','age':18}
# print(dict1['name']) #xiaoduan 通过建取值
# 8)字典添加元素setdefault()
# dict1 = {'name':'xiaoduan','age':18}
# dict1.setdefault('class',1833)
# print(dict1) #{'name': 'xiaoduan', 'age': 18, 'class': 1833}
#
# dict1.setdefault('name','xiaochen') #字典存在的键,所以不会起效果
# print(dict1) #{'name': 'xiaoduan', 'age': 18, 'class': 1833}
# 9)删除键值对
# dict1 = {'name':'xiaoduan','age':18}
# del dict1['name'] #删除键,值也会被删除
# print(dict1) #{'age': 18}
#
# del dict1 #删除整个字典
# print(dict1) #报错,提示字典不存在
# 10)对字典进行for 循环遍历,可以拿到键和值
# dict1 = {'name':'xiaoduan','age':18}
# for i in dict1:
# # print(i) #name age 这里只打印字典中的键,
# print(i,dict1[i]) #name xiaoduan age 18 打印键和对应的值
# 11)使用items()完成遍历
# dict1 = {'name':'xiaoduan','age':18}
# for i,j in dict1.items(): #items需要定义两个变量i,j
# print(i,j) #name xiaoduan age 18 打印键和对应的值
# 12)pop(key)函数,删除指定键并返回删除的值
# dict1 = {'name':'xiaoduan','age':18}
# print(dict1.pop('name')) #xiaoduan 打印出删除键对应的值
# print(dict1) #{'age': 18}
#注意:这里地方的pop是不能用索引删除
# 13)clear()清空字典所有项
# dict1 = {'name':'xiaoduan','age':18}
# dict1.clear()
# print(dict1) #{}
# 14)get(key)方法,通过key获取值,当键不存在,返回None
# dict1 = {'name':'xiaoduan','age':18}
# print(dict1.get('name')) #xiaoduan
# 15)fromkeys函数可以给具体的键指定值
# dict1 = {}.fromkeys(['name','age'])
# print(dict1) #{'name': None, 'age': None} 初始化一个字典只给键不给值
#
# # fromkeys 也可以直接给值
# dict2 = {}.fromkeys(['name','age'],'test')
# print(dict2) #{'name': 'test', 'age': 'test'}
#
# dict3 = {}
# print(dict3.fromkeys(['name','age'],'test')) #{'name': 'test', 'age': 'test'}
# 16)__contains__函数检查字典是否有指定的键,有返回True,没有返回 False
# dict1 = {'name':'xiaoduan','age':18}
# print(dict1.__contains__('name')) #True
#
# if dict1.__contains__('class') is True: #如果class这个键存在就直接打印
# print('存在此键')
# else: #否则添加到字典中
# # dict1.setdefault('class',1833)
# dict1['class'] = 1833
# print(dict1)
# 17)popitem函数随机返回并删除字典中的键值对(一般删除末尾对) 如果字典已经为空,
# 却调用了此方法,就报出KeyError异常
# dict1 = {'name':'xiaoduan','age':18}
# dict1.popitem() #删除后返回一个字典
# print(dict1) #{'name': 'xiaoduan'}
#
# print(dict1.popitem()) #('name', 'xiaoduan') 返回一个元组
# 18)update函数利用一个字典更新另外一个字典
# dict1 = {'name':'xiaoduan','age':18}
# dict2 = {'name':'xiaochen'}
# dict3 = {'class':1833}
# dict1.update(dict2) #如果更新字典中的键存在的话,就覆盖原来的值
# print(dict1) #{'name': 'xiaochen', 'age': 18}
#
# dict1.update(dict3) #如果字典中更新的键不存在的话,加添到字典中
# print(dict1) #{'name': 'xiaochen', 'age': 18, 'class': 1833}
# 7)python 中的集合 【集合最大的作用去重】
# 集合:可变集合 set = {} 不可变集合 frozenset
# ①可变集合
# test = 'hello'
# a =set(test) #把字符串通过set()转化为集合
# print(a) #{'e', 'l', 'o', 'h'}
# print(type(a)) #<class 'set'>数据类型
# 1)清空clear()
# a.clear()
# print(a) #set()
# 2)随机删除
# a.pop()
# print(a) #{'h', 'l', 'o'} 随机删除一个元素
# 3)remove() 移除
# a.remove('l')
# print(a) #{'h', 'o', 'e'}
# 4)copy() 复制
# b = a.copy()
# print(b) #{'o', 'e', 'l', 'h'}
#
# # 5)add() 函数
# a.add('dcs')
# print(a) #{'o', 'e', 'h', 'l', 'dcs'}
# ② 不可变集合frozenset ==>没有删除 添加 清空
# s = 'hello'
# a = frozenset(s)
# print(a) #frozenset({'h', 'o', 'l', 'e'})
# b = a.copy()
# print(b) #frozenset({'h', 'e', 'l', 'o'})
# print(type(b)) #<class 'frozenset'>
# 例子:对列表去重
list1 = [1,1,2,3,4,6]
list3 = []
# list2 = set(list1)
# print(list2) #{1, 2, 3, 4, 6}
for i in list1:
print(i,end="") #i = 1,1,2,3,4,6
if i not in list3: #如果i不在list3里面,就往里面添加元组,在里面不会添加
list3.append(i)
print(list3) #[1, 2, 3, 4, 6]
|
|