3.4 列表(list)
格式
users = ["ji",1,3,"gyhj"]
公共方法
1.len# 计算长度
- users = ["ji",1,3,"gyhj"]
- val = len(users)
- print(val) # 3
- View Code
2. 索引 #输出某一个元素
- users = ["ji",1,3,"gyhj"]
- val = users[1]
- print(val) # 1
- View Code
3. 切片 #输出某一段元素
- users = ["ji",1,3,"gyhj"]
- val = users[0:2]
- print(val) # "ji",1
- View Code
4. 修改(字符串 / 数字 / 布尔除外)
- users = ["ji",1,3,"gyhj"]
- users[2] = 66
- print(users) # ['ji', 1, 66, 'gyhj']
- View Code
5. 步长 #选取列表中第几个元素
- users = ["ji",1,3,"gyhj"]
- val = users[0:3:2]
- print(val) # ['ji', 3]
- View Code
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])
- View Code
注意: for 和 while 的应用场景:
有穷尽优先使用 for,
无穷尽用 while
3. 独有方法
1.append, 在列表的最后追加一个元素
- # 示例
- users = ["sdxfc"]
- while True:
- name = input('请输入姓名:')
- users.append(name)
- print(users) # ['sdxfc', 'sdf']
- View Code
- 2.insert #在指定索引位置进行插入元素
- users = ['qwe','asd','zxc','rty']
- users.insert(1,'zxc')
- print(users) # ['qwe', 'zxc', 'asd', 'zxc', 'rty']
- View Code
- 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) # []
- View Code
注意:
字符串本身不能修改或删除[不可变类型]
列表是[可变类型]
4.".reverse" #反转
- v1 = [1,2,3111,32,13]
- print(v1) # [1, 2, 3111, 32, 13]
- v1.reverse()
- print(v1) # [13, 32, 3111, 2, 1]
- View Code
- 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]
- ?
- View Code
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]
- View Code
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
- View Code
元组嵌套
- # 错误示例
- 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('用户名或密码错误')
- View Code
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
- View Code
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)
- View Code
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) # {
- }
- View Code
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) # 循环打印出所有键值
- View Code
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'
- }
- View Code
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'
- }
- View Code
2.".discard()" , 删除: 所删除值没有原值输出, 不会报错
- info = {
- "name",'li','age',18,'gender','男',
- }
- info.discard(18)
- print(info) #{
- '男', 'li', 'name', 'age', 'gender'
- }键
- View Code
3.".update()" , 批量添加.
- info = {
- "name",'li','age',18,'gender','男',
- }
- del info['gender']
- print(info) # {
- 'name': 'li', 'age': 18
- }
- View Code
4.".intersection()" , 交集: 生成新值. 括号里可以列表, 集合, 元祖.
- info = {
- "name",'li','age',18,'gender','男',
- }
- result = info.intersection({
- 1,'li','男'
- })
- print(result) # {
- 'li', '男'
- }
- View Code
5.".union()" , 并集: 生成新值. 括号里可以列表, 集合, 元祖.
- info = {
- "name",'li','age',18,'gender','男',
- }
- result = info.union({
- 1,'li','男'
- })
- print(result) # {
- 'gender', 1, '男', 18, 'name', 'age', 'li'
- }
- View Code
6.".difference()" , 差集: 生成新值. 括号里可以列表, 集合, 元祖.
- info = {
- "name",'li','age',18,'gender','男',
- }
- result = info.difference({
- 1,'li','男'
- })
- print(result) # {
- 'name', 18, 'age', 'gender'
- }
- View Code
7.".symmetric_difference()" , 对称差集: 生成新值. 括号里可以列表, 集合, 元祖.
- info = {
- "name",'li','age',18,'gender','男',
- }
- result = info.symmetric_difference({
- 1,'li','男'
- })
- print(result) # {
- 1, 'name', 'gender', 18, 'age'
- }
- View Code
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'}
- View Code
5. 总结
列表 / 字典 / 集合 -> 不能放在集合中 + 不能作为字典的 key(unhashable)
hash(哈希): 因为在内部会将值进行哈希算法并得到一个数值(对应内存地址), 以后用于快速查找.
来源: http://www.bubuko.com/infodetail-3120782.html