列表相关操作
-
加法和乘法运算
-
列表1 + 列表2 – 将两个列表合并并产生一个新的列表
list1 = [10,20,30] list2 = [100,200] print(list1 + list2)#[10,20,30,100,200]
-
列表 * N — 将列表中的元素重复N次产生一个新的列表
print(list1 * 3)#[10,20,30,10,20,30,10,20,30]
-
-
in 和 not in
-
数据 in 列表 — 判断列表中是否存在指定数据对应的元素
-
数据 not 列表 — 判断列表中是否不存在指定数据对应的元素
print(10 in list1) print(11 in list1) print([10, 20] in list1)#False 因为list中没有[10,20]这个列表元素
-
-
相关函数
-
max(列表)、min(列表)
list1 = [10, 23, 45, 67, 91] print(max(list1), min(list1))
-
sorted(列表) – 将列表中的元素从小到大排序,产生一个新的列表
-
sorted(列表,reverse=True) – (将列表中的元素从大到小排序,产生一个新的列表)
list = [10, 230, 45, 670, 91] new_list1 = sorted(list1) print(new_list1) #[10, 45, 91, 230, 670] list1 = [10, 230, 45, 670, 91] new_list1 = sorted(list1,reverse = True) print(new_list1)
-
len(列表) – 获取列表长度(列表中元素的个数)
print(len(list1))
-
list(数据) – 将指定的数据转换成列表(这儿的数据必须是序列)
- 所有的序列都可以转换成列表,转换成列表的时候,序列中的元素就是列表的元素
#例 stu1 = '13124' test=list(stu1) print(test)
-
字典
-
字典存在的价值
-
需求:定义一个变量保存一个学生的信息
stu1 = {'name':'小明','年龄': 25,'性别':'男', '身高': 175} print(stu1['name']) print(stu1['身高'])
-
结论:需要同时保存多个意义不同的数据就使用字典;需要同时保存多个意义相同的数据就使用列表
-
-
什么是字典(dict)
-
容器:将{}作为容器的标志,里面多个键值用逗号隔开(一个键值对就是一个元素):{键1:值1,键2:值2,键3:值3,… }
-
字典是可变的(支持增删改);字典无序(顺序不影响结果;不支持下表操作)
-
键的要求
- 不可变类型的数据才能作为字典的键(数字、字符串、布尔、空值、元组),一般使用字符串作为字典的键。
- 键是唯一的
-
值的要求:没有要求
#空字典 dict1 = {} #字典是无序 print({'a': 10,'b': 20} == {'b':20,'a':10}) #字典的键必须是不可变类型的数据 dict2 = {1:10,'a':22,True:32,(12,32):23} print(dict2) #键是唯一的 dict3 = {'a':12 , 'js':23} print(dict3) dict4 = {'a':22 , 'js':234} print(dict3) print(dict4)
-
字典的基本操作
- 注意:字典保存数据真正想要保存的是值,键是用来对值进行区分和说明
-
查 — 获取字典的值
-
查单个 – 获取一个值
""" a.字典[键] --- 获取一个值 b.字典.get(键) --- 获取字典中指定键的值,如果键不存在不会报错,并且会返回None c.字典.get(键,默认值) --- 获取字典中指定键对应的值;如果键不存在不会报错,并且返回默认值 """ dog = {'name':'旺财', 'age': 3, 'bead':'土狗','color':'黄色','gender':'母狗'} print(dog['age']) print(dog['gender']) print(dog['weight'])#报错,键不存在 print(dog.get('weight'))#没有键值,不会报错,会返回None print(dog.get('weight',0))#没有键值,返回默认值0 #生活中的字典:定义一个变量保存一个班级信息 class1 = { 'name': 'python2302', 'address': '11教', 'teacher': {'name': '余婷', 'age': 18, 'gender': '女', 'qq': '726550822'},'header_teacher': {'name': '舒玲', 'age': 18, 'gender': '女', 'tel': '110'}, 'students': [ {'name': 'stu1', 'age': 19, 'gender': '男', 'link_man': {'name': '张三', 'tel': '120'}}, {'name': 'stu2', 'age': 16, 'gender': '女', 'link_man': {'name': '李四', 'tel': '119'}}, {'name': 'stu3', 'age': 22, 'gender': '女', 'link_man': {'name': '老王', 'tel': '234'}}, {'name': 'stu4', 'age': 17, 'gender': '男', 'link_man': {'name': '赵六', 'tel': '2112'}}, {'name': 'stu5', 'age': 29, 'gender': '男', 'link_man': {'name': '邓七', 'tel': '5482'}}, {'name': 'stu6', 'age': 25, 'gender': '女', 'link_man': {'name': '王八', 'tel': '9223'}} ] } sum=0 n=0 print('班级名称',class1['name']) print('讲师的名字和qq',class1['teacher']['name'],class1['teacher']['qq']) print('班主任的电话',class1['header_teacher']['tel']) print('所有学生的名字:') for i in class1['students']: print(i['name']) print('所有未成年学生的名字和性别:') for i in class1['students']: if i['age'] < 18: print(i['name'],i['gender']) print('所有学生的联系人名字:') for i in class1['students']: print(i['name'],'的联系人名字是',i['link_man']['name']) for i in class1['students']: if i['gender'] == '男': sum += i['age'] n += 1 print('所有男生的平均年龄',sum/n)
-
遍历
''' for 变量 in 字典: 循环体(变量依次取到的是字典的键) ''' dog = {'name':'旺财', 'age': 3, 'bead':'土狗','color':'黄色','gender':'母狗'} for x in dog: print(x,dog[x])
-
-
增
#1.字典[键] = 值 ----- 如果键不存在就在字典中添加键值对 #2.字典.setdefault(键,值) --- 在字典中添加键值对(键如果存在不会修改对应的值) dog = {'name':'旺财', 'age': 3, 'bead':'土狗','color':'黄色','gender':'母狗'} print(dog) dog['weight'] = 10 print(dog) dog.setdefault('weight','20') print(dog)
-
改
#字典[键] = 值---------如果键存在就修改指定键对应的值 dog = {'name':'旺财', 'age': 3, 'bead':'土狗','color':'黄色','gender':'母狗'} print(dog) dog['name'] = '财财' print(dog)
-
删 – 删除键值对
#del 字典[键] --删除字典中指定键对应的键值对 dog = {'name':'旺财', 'age': 3, 'bead':'土狗','color':'黄色','gender':'母狗'} print(dog) del dog['name'] print(dog) #字典.pop(键) --- 取走字典中键指定的值 dog = {'name':'旺财', 'age': 3, 'bead':'土狗','color':'黄色','gender':'母狗'} print(dog) result = dog.pop('name') print(dog,result)
字符串和元组
-
字符串(str)
""" 容器:将''或""作为容器的标志,里面的每一个符号就是字符串中的每个元素。例如:'abc'、'10,20,30' 字符串是不可变的;字符串是有序的(支持下表操作) 元素:字符串的元素又叫字符,分为普通字符和转义字符两种 \n -- 换行 \t -- 水平制表符(tab键) """ print('abc') print('\mabc') print('----------------------------') print('\nab\nc')
-
字符串查操作
#字符串获取元素的方法和列表一样 msg = 'hello world!' print(msg[0]) print(msg[-1]) for i in msg: print(i) str1 = 'abc' str2 = '123' print(str1 + str2)#abc123 print(str1 * 3)#abcabcabc
-
-
元组
#元组就是不可变的列表:(元素1,元素2,元素3,...) #如果要对元组中的数据做更改,可以先将元组转为列表list t1 = (10,20,30,40,50) print(t1[0]) print(t1[-1])