(期末卷一卷) python列表,元组,字典详解
一、列表
列表是python中的一种数据类型,可以存放多个数据,列表中的数据可以是任意类型的。
- 定义空列表有两种方法:
#定义空列表
my_list = []
print(my_list,type(my_list))
my_list1 =list()
print(my_list1,type(my_list1))
- 定义带数据的列表,数据元素之间使用逗号隔开
list =[1,3.14,True,'小可爱慧慧']
print(list,type(list))
- 求列表中数据元素的个数,即列表的长度(使用内置函数len())
num=len(list)
print(num)
- 列表支持下标和切片操作
print("*"*30)
print(list[1])
print(list[-1])
print(list[1:3])
- 下标操作和字符串不同的是:列表可以通过下标直接修改该数据元素
list[0]='慧慧'
print(list[0])
- 使用for循环对列表进行遍历
for i in list:
print(i)
- 使用while循环对列表进行遍历
j=0
while j<len(list):
print(list[j])
j +=1
- 向列表中添加数据元素(两种方法)
# 向列表中添加数据的方法,都是直接在源列表中进行添加的,不会返回新的列表
# 1:append(新的数据元素)
list.append('喜欢')
print(list)
list1=list.append('对不起') # 此处的list1是空列表,因为列表添加方法都不会产生新列表
print(list1) # None 关键字,表示空
print(list)
# 2:列表.insert(下标,新的数据元素)
list.insert(0,'老婆')
print(list)
# 3: 列表.extend(可迭代对象) 会将可迭代对象中的数据逐个添加到源列表的末尾
list.extend('LOVE')
print(list)
list.extend(['你','记得','吗'])
print(list)
- 列表中的数据查询操作
# index(需要查找的数据元素)
num=list.index('老婆')
print(num)
# count(需要统计的数据元素) 统计出现的次数
num1=list.count('慧慧')
print(num1)
# in/not in 判断是否存在,存在是True,不存在是False
num2='喜欢' in list
print(num2)
num3='喜欢' not in list
print(num3)
- 列表的删除操作
# 1:根据元素的数据值进行删除
list.remove('慧慧')
print(list)
list.remove('老婆')
print(list)
# 2: 根据下标进行删除
# 2.1 : pop(下标) 默认删除最后一个数据,返回删除的内容
str=list.pop()
print(str)
print(list)
str1=list.pop(2)
print(str1)
print(list)
# 2.2: del 列表[下标]
del list[5]
print(list)
- 列表中的排序操作
- 注意: 想要对列表中的数据排序,首先要要求列表中的数据元素类型是一样的
list2=[2,5,66,7,8,1]
# 列表.sort() 直接在源列表中进行排序,默认为从小到大:即升序
list2.sort()
print(list2)
list2.sort(reverse=True) # 通过列表.sort(reverse=True),变为从大到小排序,即:降序
print(list2)
# 补充: (内置函数)sotred(列表) 排序 ,不会在源列表中进行排序,会得到一个新的列表
list3=sorted(list2) # 默认为升序
print(list3)
list4=sorted(list2,reverse=True) # 修改为降序
print(list4)
# 通过切片对列表进行逆置,可得到一个新列表
list5=['a','4','f','1','b']
list6=list5[::-1]
print(list6)
# 在源列表中直接逆置, 列表.reverse()
list6.reverse()
print(list6)
- 列表的嵌套
List=[[1,2,4,5,6,5],
['s','2','v','s','k'],
[True,'慧慧','我喜欢你',1314]]
print(List[2])
print(List[2][2])
print(List[2][2][2])
for i in List:
for j in i:
print(j,end=' ')
- 列表的拼接
l=['1','a','o','y'] # 要求元素全部为字符串
print('*'.join(l))
二、元组
元组和列表的不同:
(1)、列表用[] 定义,元组用() 定义
(2)、列表中的元素可以修改,元组中的元素不可以修改,这就导致元组不能进行元素添加,元素删除,排序等操作。
- 元组的定义
list=['q','w','e','r'] # 列表的定义
tuple=('x',1,True,'x') # 元组的定义
print(list,type(list))
print(tuple,type(tuple))
- 定义空元组
t=(3) # 不是元组,是int类型
tt=(3,) # 加逗号,表示元组
print(t,type(t))
print(tt,type(tt))
- 元组长度
print(len(tuple))
- 元组的下标与切片操作
t=(1,4,25,6,7,8,100)
print(t[-1])
print(t[0:5:2])
print(t[0:5]) # 注意两个参数时输出不包含停止索引的数据
print(t[::-1])
- 元组的拼接
t1=(1,2,3,4)
t2=(5,6,7)
print(t1+t2)
- 元组的最值操作
print(min(t2))
print(max(t2))
- 元组的删除
# print(t1)
# del t1
# print("删除之后:",t1) # 系统会报错:没有定义该元组
# Traceback (most recent call last):
# File "D:\Pycharm\Charm.1.入门\元组.py", line 37, in <module>
# print("删除之后:",t1)
# NameError: name 't1' is not defined
- 元组中的数据查询操作
- index(需要查找的数据元素,返回该元素的下标)
num=tuple.index('x')
print(num)
- count(需要统计的数据元素) 统计出现的次数
num1=tuple.count('x')
print(num1)
三、字典
- 字典 dict 定义使用{}定义,是由键值对组成(key-value)
- 变量 ={key1:value1,key2:value2,key3:value3…}
- 字典的key 可以是字符串,数字,元组类型,但不能是列表
-value 值可以是任意类型 - 定义空字典
my_dict ={}
my_dict1=dict()
print(my_dict,type(my_dict))
print(my_dict1,type(my_dict1))
- 定义带数据的字典
my_dict2={'name':"惠",'age':19,'like':['学习','乖巧','关心人'],1:[2,5,6,6]}
print(my_dict2)
- 访问value值,在字典中没有下标的概念,使用key值访问对应的value值
print(my_dict2['name'])
print(my_dict2['like'][1])
# 如果key值不存在,程序报错
# print(my_dict2[3]) # 程序报错
- 字典.get(key)
print(my_dict2.get(1))
print(my_dict2.get(2))# 如果key值不存在,get方法返回None关键字,表示空
- 字典.get(key,数据值) 如果key值不存在,返回书写的数据值
print(my_dict2.get('age','hello'))
print(my_dict2.get(4,'没有该数据'))
- len()方法求:字典的数据元素个数
print(len(my_dict2))
- 字典中数据的添加和修改
my_dict3={'name':'惠'}
- 字典中添加和修改数据,使用key值进行添加和修改
- 字典[key]=数据值 , 如果key值存在,就是修改,如果key值不存在,就是添加
my_dict3['有点']='可爱'
print(my_dict3)
my_dict3['有点']='傻'
print(my_dict3)
# 注意: key值int型的1 和 float 型的1.0 是一个数据
my_dict3[1]='int'
print(my_dict3)
my_dict3[1.0]='float'
print(my_dict3)
- 字典的删除数据
my_dict2={'name':"惠",'age':19,'like':['学习','乖巧','关心人'],1:[2,5,6,6]}
- 字典.pop(key) 该方法将删除对应key值以及对应的value值,并且返回key值对应的value值
result= my_dict2.pop('age')
print(my_dict2)
print(result)
- 字典.clear() 清空字典,删除所有的键值对
my_dict2.clear()
print(my_dict2)
- del 字典名 直接将这个字典删除了。不能使用这个字典了
del my_dict2 # 后面的代码不能再直接使用这个字典变量了,除非·再次定义
# print(my_dict2) # 代码会报错
- 字典中遍历数据
my_dict4={'name':"惠",'age':19,'like':['学习','乖巧','关心人'],1:[2,5,6,6]}
- for循环直接遍历字典,注意:遍历的是字典的key值
for key in my_dict4:
print(key,my_dict4[key])
print('='*50)
- 字典.keys() 获取字典的所有key值,得到的类型是dict_keys,该类型具有的特点是:
(1):可以使用list() 进行类型转换,即将其转换为列表类型
(2):可以使用for循环进行遍历
result= my_dict4.keys()
print(result,type(result))
for key in result:
print(key)
- 字典.values() 获取字典的所有value值,得到的类型是dict_values
(1):可以使用list() 进行类型转换,即将其转换为列表类型
(2):可以使用for循环进行遍历
result1=my_dict4.values()
print(result1,type(result1))
for value in result1:
print(value)
- 字典.items() 获取字典的所有键值对,得到的类型是dict_items ,(key,value)组成元组类型
(1):可以使用list() 进行类型转换,即将其转换为列表类型
(2):可以使用for循环进行遍历
result2=my_dict4.items()
print(result2,type(result2))
print('='*50)
for item in result2:
print(item[0],item[1])
for k,v in result2: # k 是元组中的第一个数据, v 是元组中的第二个数据
print(k,v)