文章目录
5.1 列表概述
列表是 Python 中的一种数据结构,可以存储不同类型的数据。
list_example = [1, 'xiaowang', 'a', [2, 'abc']]
print(list_example[0])
print(list_example[1])
print(list_example[2])
print(list_example[3])
print('*'*15)
print(list_example[3][0])
print(list_example[3][1])
print(list_example[3][1][2])
5.2 列表的循环遍历
5.2.1 for 循环遍历
list_example = [1, 'xiaowang', 'a', [2, 'abc']]
for i in list_example:
print(i)
5.2.2 while 循环遍历列表
list_example = [1, 'xiaowang', 'a', [2, 'abc']]
length = len(list_example)
i = 0
while i < length:
print(list_example[i])
i += 1
5.3 列表的常见操作
5.3.1 在列表中增加元素
- 通过 append 方法可以向列表添加元素。
- 通过 expend 方法可以将另一个列表中的元素逐一添加到列表中。
- 通过 insert (index, object) 方法在指定位置 index 前插入元素 object。
-
append
使用 append 方法向列表添加的元素位于列表的末尾。
names_list = ['xiaowang', 'xiaozhang', 'xiaohua'] for i in names_list: print(i) print('-'*17) names_list.append(input('输入添加姓名:')) for i in names_list: print(i)
-
extend
使用 extend 方法将一个列表中的元素全部添加到另一个列表。
list_one = [1, 2] list_two = [3, 4] list_one.extend(list_two) print(list_one) list_one.extend(list_two) print(list_one)
-
insert
使用 insert 方法可以在列表的指定位置添加元素。
list_one = [1, 2] list_one.insert(1, 3) print(list_one)
5.3.2 在列表中查找元素
查找就是看看指定元素是否存在。
in :找到返回 True, 未找到返回 False
not in :未找到返回 True, 找到返回 False
names_list = ['xiaowang', 'xiaozhang', 'xiaohua']
find_name = input("输入要查找的名称:")
if find_name in names_list:
print(True)
else: print(False)
5.3.3 在列表中修改元素
通过下标修改列表中元素。
names_list = ['xiaowang', 'xiaozhang', 'xiaohua']
print('-------修改前 name_list 数据-------')
for i in names_list:
print(i, end = ' ')
names_list[0] = 'wang'
print('\n-------修改后 name_list 数据-------')
for i in names_list:
print(i, end = ',')
5.3.4 在列表中删除元素
- del 根据下标删除
- pop 删除最后一个元素
- remove 根据元素的值进行移除
-
del 语句
删除指定下标的元素,或者直接删除整个列表。
number_list = [1, 2, 3, 4, 5] del number_list[0] for i in number_list: print(i, end=' ')
-
pop 方法
删除列表最后一个元素。
number_list = [1, 2, 3, 4, 5] number_list.pop() for i in number_list: print(i, end=' ')
-
remove 方法
删除列表的指定元素。
number_list = [1, 2, 3, 4, 5] number_list.remove(3) for i in number_list: print(i, end=' ')
5.3.5 列表的排序操作
对列表中元素重新排列,可以使用 sort 方法或者 reverse 方法实现。sort 默认从小到大,如果从小到大,可以将 sort 中reverse 参数设为 True。reverse 将列表逆序。
list_demo = [1, 9, 4, 7]
list_demo.reverse()
print(list_demo)
list_demo.sort()
print(list_demo)
list_demo.sort(reverse=True)
print(list_demo)
5.4 列表的嵌套
5.4.1 列表的嵌套
指一个列表中的元素又是一个列表。
school_names = [
['清华', '北大'],
['南开', '天津大学', '天津师范'],
['山大', '中国海洋大学']
]
5.4.2 案例
某学校共有 3 个办公室,现有 8 位老师等待工位的分配,请编写程序,完成办公室的随机分配。
设计思路:
- 先定义一个列表,用来存储 8 位老师姓名;
- 定义一个列表,这里有 3 个空的办公室,用来等待其他老师加入;
- 通过循环的方式把 8 位来时随机分配到 3 个办公室中;
- 输出每个办公室里面老师的信息。
import random
# 定义一个列表用来保存 3 个办公室
offices = [[], [], []]
# 定义一个列表用来存储 8 位老师的名字
names = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
for name in names:
index = random.randint(0,2)
offices[index].append(name)
i = 1
for tmp in offices:
print("办公室 %d 的人数为:%d"%(i, len(tmp)))
i += 1
for name in tmp:
print('%s'%name,end = ' ')
print('-'*20)
5.5 元组
tuple 与 list 类似。元素不能修改元素。
-
访问元组
通过下表访问,不在举例。
-
修改元组
元组中的值不可修改,但可以对元组进行连接组合。
tuple_one = (1, 7) tuple_two = ('xiao', 'wang') # 修改元组报错 # tuple_one[0] = 1000 # 创建一个新元组 tuple_three = tuple_one + tuple_two print(tuple_three)
-
元组遍历
tuple_demo = (1,3,5,6,8,0) for i in tuple_demo: print(i, end = ' ')
-
内置函数
方法 描述 len(tuple) 元素个数 max(tuple) 返回元组中元素最大值 min(tuple) 返回元组中元素最小值 tuple(sep) 将列表转换为元组 tuple_one = ('Google', 'Runoob', 'Taobao') len_size = len(tuple_one) print(len_size) tuple_two = (5, 8 , 9, 2) print(max(tuple_two)) print(min(tuple_two)) list_demo = ['Google', 'Runoob', 'Taobao'] tuple_three = tuple(list_demo) print(tuple_three)
5.6 字典
5.6.1 字典
info = {'name': 'xiaowang', 'id': 100, 'sex':'f', 'address': '河南省'}
字典每个元素由两个部分组成,键、值。以 'name':'xiaowang'
为例,name
为键,xiaowang
为值。
键是唯一的,值可以是任意类型。
5.6.2 字典的常见操作
-
根据键访问
info = {'name': 'xiaowang', 'id': 100, 'sex':'f', 'address': '河南省'} print(info['name'])
不确定键是否存在于字典中,可以使用 get
方法进行获取。其返回指定键的值,若访问的键不存在,则返回默认值。
info = {'name': 'xiaowang', 'id': 100, 'sex':'f', 'address': '河南省'}
print(info['name'])
age = info.get('age')
print(age) # age 键不存在返回 None
print(type(age))
age = info.get('age', 20) # # age 键不存在返回值 20
print(age)
如果键存在,则 type
返回 class 'str'
。
-
修改字典中的元素
如果添加的键已存在,则会覆盖掉原来的值。
info = {'name': 'xiaowang', 'id': 100, 'sex':'f', 'address': '河南省'} new_id = input('请输入新学号:') info['id'] = int(new_id) print(info['id'])
-
添加字典元素
变量名[‘键’] = 数据 ,当键不存在时,将在字典中新建一个元素。
info = {'name': 'xiaowang', 'sex':'f', 'address': '河南省'} print(info) new_id = input('输入id:') info['id'] = new_id print(info) print(info['id'])
-
删除字典元素
del
语句删除整个字典或者字典中某个元素clear
方法清空整个字典。pop(keys)
info = {'name': 'xiaowang', 'sex':'f', 'address': '河南省'} print(info) # del print('删除前:%s'%info['name']) del info['name'] print(info) # clear info.clear() print(info)
-
计算字典中键值对的个数
len
方法info = {'name': 'xiaowang', 'sex':'f', 'address': '河南省'} lenth = len(info) print(lenth)
-
获取字典的键、值视图
keys()
方法获取键视图values()
方法获取值视图info = {'name': 'xiaowang', 'sex':'f', 'address': '河南省'} # 键视图 print(info.keys()) # 值视图 print(info.values())
-
获取字典的元素视图
item()
方法获取元素视图info = {'name': 'xiaowang', 'sex':'f', 'address': '河南省'} print(info.items())
5.6.3 字典的遍历
-
遍历字典的键
-
遍历字典的值
-
遍历字典的元素
-
遍历字典的键值对
info = {'name': 'xiaowang', 'id': 100, 'sex':'f', 'address': '河南省'} # 键 for key in info.keys(): print(key, end=' ') print() # 值 for value in info.values(): print(value, end=' ') print() # 元素 for item in info.items(): print(item, end=' ') print() # 键值对 for key,value in info.items(): print("key = %s, value = %s"%(key, value), end=' ') print() for key,value in info.items(): print((key, value), end=' ')
set 集合
元素重复则删除