3.4 列表(list)
-
格式
users = ["ji",1,3,"gyhj"]
-
公共方法
-
-
1.len #计算长度
users = ["ji",1,3,"gyhj"] val = len(users) print(val) # 3
-
2.索引 #输出某一个元素
users = ["ji",1,3,"gyhj"] val = users[1] print(val) # 1
-
3.切片 #输出某一段元素
users = ["ji",1,3,"gyhj"] val = users[0:2] print(val) # "ji",1
-
4.修改(字符串/数字/布尔除外)
users = ["ji",1,3,"gyhj"] users[2] = 66 print(users) # ['ji', 1, 66, 'gyhj']
-
5.步长 #选取列表中第几个元素
users = ["ji",1,3,"gyhj"] val = users[0:3:2] print(val) # ['ji', 3]
-
6.for循环
users = ["ji",1,3,"gyhj"]
for i in users:
print(i) # 每个元素一次打印
"""
users = ["ji","asdgfh","tryu","gyhj"]
for i in users:
# 第一次循环:i=“ji”
for e in i:
print(e) # 打印第一个元素中每个字符
"""# 练习题:请通过for循环和数字计数器实现:users = ['李邵奇','利奇航','张三丰','李子森'] 1 qwe 2 asd 3 zxc 4 rty # 方式一 users = ['qwe','asd','zxc','rty'] count = 1 for i in users: print(count,i) count += 1 # 方式二 users = ['qwe','asd' ,'zxc','rty'] users_len = len(users) # 4 for index in range(0,users_len): # [0,1,2,3] print(index,users[index])
注意:for和while的应用场景:
-
有穷尽优先使用for,
-
无穷尽用while
-
-
3.独有方法
-
-
1.append,在列表的最后追加一个元素
# 示例 users = ["sdxfc"] while True: name = input('请输入姓名:') users.append(name) print(users) # ['sdxfc', 'sdf']
-
2.insert #在指定索引位置进行插入元素
users = ['qwe','asd','zxc','rty'] users.insert(1,'zxc') print(users) # ['qwe', 'zxc', 'asd', 'zxc', 'rty']
-
3.remove # 删除 注意:()里不加删除内容报错
.pop # 删除 注意:()里不加数字,默认删除最后一个
del # 删除 注意:()里不加数字报错
.clear # 删除列表里所有元素 注意:()里不能加数字
users = ["ji",1,3,"gyhj"] # 方式一 users.remove('ji') print(users) # [1, 3, 'gyhj'] # 方式二 users.pop(1) print(users) #['ji', 3, 'gyhj'] # 方式三 del users[1] print(users) #['ji', 3, 'gyhj'] # 方式四 users.clear() print(users) # []
注意:
-
字符串本身不能修改或删除【不可变类型】
-
列表是【可变类型】
-
-
4.".reverse" #反转
v1 = [1,2,3111,32,13] print(v1) # [1, 2, 3111, 32, 13] v1.reverse() print(v1) # [13, 32, 3111, 2, 1]
-
5."sort" # 排序
v1 = [1,2,3111,32,13] v1.sort(reverse=False) # 从小到大(默认) print(v1) # [11, 13, 22, 32, 3111] v1.sort(reverse=True) # 从大到小 print(v1) # [3111, 32, 22, 13, 11]
-
6.extend() 在列表末尾一次性追加另一个序列中的多个值
list1 = ['Google', 'Runoob', 'Taobao'] list2=list(range(5)) # 创建 0-4 的列表 list1.extend(list2) # 扩展列表 print ("扩展后的列表:", list1) # 扩展后的列表: ['Google', 'Runoob', 'Taobao', 0, 1, 2, 3, 4]
-
4.总结
-
-
1.增:
-
.append / .insert
-
-
2.删:
-
.remove / .pop /. clear / del users[2]
-
-
3.改:
-
users[3] = "新值"
-
-
4.查:
-
索引/切片
-
-
5.列表嵌套
users = ["a",0,True,[1,2,3,"kjhg"],[4,['sdf','dfg'],5,6]]
users[0] # a
users[2] # True
users[3][2] # 3
users[3][-1] # "kjhg"
users[3][-1][-1] # 'g'
users[3] = 666 # ['a', 0, True, 666, [4, ['sdf', 'dfg'], 5, 6]]
-
3.5 元祖(tuble)
1.格式
-
-
users = [11,22,33] # 列表(元素可变)
-
users = (11,22,33) # 元组(元素不可变)
-
2、公共方法
-
-
1.索引(排除:int/bool)
users = (11,22,33)
print(users[0]) # 11
print(users[-1]) # 33 -
2.切片(排除:int/bool)
users = (11,22,33)
print(users[0:2]) -
3.步长(排除:int/bool)
users = (11,22,33,"qwerty")
print(users[0:2:2]) -
4.for循环(排除:int/bool)
users = (11,22,33,"qwerty")
for item in users:
print(item) -
5.len(排除:int/bool)
users = (11,22,33,"qwerty")
print(len(users))
-
3、独有方法(无)
4、 特殊
-
-
元组中的元素(儿子)不可被修改/删除
# 示例一: v1 = (11,22,33) v1[1] = 999 # 错误 v1 = 999 # 正确 # 示例二:可以嵌套 v1 = (11,22,33,(44,55,66),(11,2,(99,88,),3)) # 示例三:嵌套 v2 = [11,22,33,(11,22,33)] v2[-1][1] = 99 # 错误 v2[-1] = 123 # 正确 # 示例四:嵌套 v3 = (11,[1,2,3],22,33) v3[1] = 666 # 错误 v3[1][2] = 123
-
-
-
元组嵌套
# 错误示例
v3 = (11,[1,2,3],22,33)
v3[1] = 666
v3[1][2] = 123
-
3.6 字典(dict)
1.字典含义
-
-
帮助用户去表示一个事物的信息(事物是有多个属性)。
-
基本格式
data = {键:值,键:值,键:值,键:值,键:值,键:值,}
# 练习题 userinfo = {'usenrame':'li','password':"xiangmin"} user = input('请输入用户:') pwd = input('请输入密码:') if userinfo['username'] == user and userinfo['password'] == pwd: print('登陆成功') else: print('用户名或密码错误')
-
2.独有功能
info = {"name":'li','age':18,'gender':'男',}
-
-
1.".keys" ,获取字典中所有的键
for item in info.keys():
print(item) #循环获取字典中所有的键 -
2.".values" ,获取字典中所有的值
for item in info.values():
print(item) #循环获取字典中所有的键 -
3.".items" ,获取字典中的所有键值对。
del info['gender']
print(info) # {'name': 'li', 'age': 18} -
4.".get" ,函数返回指定键的值,如果值不在字典中返回默认值。
# 示例 一 dict = {'Name': 'Zara', 'Age': 27} print(dict.get('Age')) # 27 # 示例 二 dict = {'Name': 'Zara', 'Age': 27} print(dict.get('asd')) # None print(dict.get('asd',"123")) # 123
-
5.".update" ,更新,字典里不存在增加/存在更新
# 示例 一 dict = {'Name': 'Runoob', 'Age': 7} a = {'Age':9} dict.update(a) print(dict) # {'Name': 'Runoob', 'Age': 9} # 示例 二 dict = {'Name': 'Runoob', 'Age': 7} dict2 = {'Sex': 'female'} dict.update(dict2) print("更新字典 dict :- ", dict)
-
6."del" ,删除 -#键值对一个整体,要删全删
".pop" ,删除
".clear",删除(清空所有内容)
info = {"name":'li','age':18,'gender':'男',} # 方法一 del info['gender'] print(info) # {'name': 'li', 'age': 18} # 方法二 a = info.pop('name') print(info) # {'age': 18, 'gender': '男'} # 方法三 info.clear() print(info) # {}
-
3.公共功能
-
-
1.len
info = {"name":'li','age':18,'gender':'男',}
print(len(info)) # 3 -
2.索引
info = {"name":'li','age':18,'gender':'男',}
a = info['name']
b = info['age']
print(a) # li
print(b) # 18 -
3.for 循环
info = {"name":'li','age':18,'gender':'男',} for a in info.keys(): print(a) # 循环打印出所有键 for b in info.values(): print(b) # 循环打印出所有值 for c,d in info.items(): print(c,d) # 循环打印出所有键值
-
4.修改 #存在就修改/不存在就增加
# 改值 info = {"name":'li','age':18,'gender':'男',} info['age'] = 99 print(info) # {'name': 'li', 'age': 99, 'gender': '男'} # 改键 # 删除后再增加 del info['gender'] print(info) # {'name': 'li', 'age': 18} info['asd'] = '123' print(info) # {'name': 'li', 'age': 18, 'asd': '123'}
-
3.7 集合(set)
1.集合含义
-
-
一个无序的不重复元素序列。
-
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
-
空集合:set()
-
基本格式
a = {1,2,3,4,5,6}
parame = {value01,value02,...}
# 或者
set(value01,value02,...)
-
2.独有方法
-
-
1.".add()" ,添加:所添加值没有原值输出、新值增加
info = {"name",'li','age',18,'gender','男',} info.add(11) print(info) # {'li', 11, 18, '男', 'gender', 'age', 'name'}
-
2.".discard()" ,删除:所删除值没有原值输出、不会报错
info = {"name",'li','age',18,'gender','男',} info.discard(18) print(info) #{'男', 'li', 'name', 'age', 'gender'}键
-
3.".update()" ,批量添加。
info = {"name",'li','age',18,'gender','男',} del info['gender'] print(info) # {'name': 'li', 'age': 18}
-
4.".intersection()" ,交集:生成新值。括号里可以列表、集合、元祖。
info = {"name",'li','age',18,'gender','男',} result = info.intersection({1,'li','男'}) print(result) # {'li', '男'}
-
5.".union()" ,并集:生成新值。括号里可以列表、集合、元祖。
info = {"name",'li','age',18,'gender','男',} result = info.union({1,'li','男'}) print(result) # {'gender', 1, '男', 18, 'name', 'age', 'li'}
-
6.".difference()" ,差集:生成新值。括号里可以列表、集合、元祖。
info = {"name",'li','age',18,'gender','男',} result = info.difference({1,'li','男'}) print(result) # {'name', 18, 'age', 'gender'}
-
info = {"name",'li','age',18,'gender','男',} result = info.symmetric_difference({1,'li','男'}) print(result) # {1, 'name', 'gender', 18, 'age'}
-
3.公共方法
-
-
len
info = {"name",'li','age',18,'gender','男',}
print(len(info)) # 6 -
for 循环
info = {"name",'li','age',18,'gender','男',}
for a in info:
print(a) # 循环打印出所有元素
-
4.特殊情况
-
-
1、集合与列表取交集
info = {"name",'li','age',18,'gender','男',}
result = info.intersection([1,'li','男'])
print(result) # {'li', '男'} # {'li', '男'} -
2.集合中出现0与False(谁在前输出谁)
info = {0, 2, 3, 4, False, "国风", None, (1, 2, 3)}
print(info) # {0, '国风', 2, 3, 4, None, (1, 2, 3)} -
3.字典中1与Ture同时为键(谁在前把后面值赋给前面的键)
info = { 1:'alex', True:'oldboy' } print(info) # {1: 'oldboy'}
-
5.总结
-
列表/字典/集合 -> 不能放在集合中+不能作为字典的key(unhashable)
-