Python列表和元组

一、列表

1. 列表格式

列表可以一次性存储多个数据,且可以为不同的数据类型,常用增、删、改、查操作
[数据1,数据2,数据3,数据4,…]

2. 下标

name_list = ["张飞", "刘备", "关羽"]
print(name_list[0])

3. 列表查找函数

  • index() :返回指定数据所在位置的下标。
列表序列.index(数据, 开始位置下标, 结束位置下标)
name_list = ["张飞", "刘备", "关羽"]
print(name_list.index("张飞")) # 0

注意:如果查找的数据不存在,会报错

  • count() : 统计指定数据在当前列表中出现的次数。
  • len() :访问列表长度,即列表中数据的个数。

4. 列表判断是否存在

  • in :判断指定数据在某个列表序列,如果在返回 True,否则返回 False
name_list = ["张飞", "刘备", "关羽"]
b = "张飞" in name_list
print(b) 	# True
print("赵云" in name_list)	# False
  • not in :判断指定数据不在某个列表序列,如果不在返回True,否则返回False

5. 列表增加数据

  • append() :列表结尾追加数据
列表序列.append(数据)
name_list = ["张飞", "刘备", "关羽"]
name_list.append("赵云")
print(name_list) 	# ['张飞', '刘备', '关羽', '赵云']

注意:列表追加数据的时候,直接在原列表里面追加了指定数据,即修改了原列表,故列表为可变类型数据

如果 append() 追加的数据是一个序列,则追加整个序列到列表

name_list = ["张飞", "刘备", "关羽"]
name_list.append(["赵云", "马超"])
print(name_list)	# ['张飞', '刘备', '关羽', ['赵云', '马超']]
  • extend():列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表。
列表序列.extend(数据)
  1. 添加单个数据
name_list = ["张飞", "刘备", "关羽"]
name_list.extend("赵云")
print(name_list)	# ['张飞', '刘备', '关羽', '赵', '云']
  1. 添加序列数据
name_list = ["张飞", "刘备", "关羽"]
name_list.extend(["赵云", "马超"])
print(name_list) 	# ['张飞', '刘备', '关羽', '赵云', '马超']
  • insert():指定位置新增数据
列表序列.insert(位置下标, 数据)
name_list = ["张飞", "刘备", "关羽"]
name_list.insert(1, ["赵云", "马超"])
print(name_list)	# ['张飞', ['赵云', '马超'], '刘备', '关羽']

6. 列表删除数据

  • del 目标
  1. 删除整个列表
name_list = ["张飞", "刘备", "关羽"]
del name_list
print(name_list)	# 会报错,未定义
  1. 删除指定数据
name_list = ["张飞", "刘备", "关羽"]
del name_list[0]
print(name_list)	# ['刘备', '关羽']
  • pop() :删除指定下标的数据(默认为最后一个),并返回该数据。
列表序列.pop(下标)
name_list = ["张飞", "刘备", "关羽"]
print(name_list.pop())	# 关羽
  • remove():移除列表中某个数据的第一个匹配项
列表序列.remove(数据)
name_list = ["张飞", "刘备", "关羽"]
name_list.remove("张飞")
print(name_list)	# ['刘备', '关羽']
  • clear() :清空列表
name_list = ["张飞", "刘备", "关羽"]
name_list.clear()
print(name_list)	# []

7.列表修改数据

  • 修改指定下标数据
name_list = ["张飞", "刘备", "关羽"]
name_list[0] = "赵云"
print(name_list)	# ['赵云', '刘备', '关羽']
  • 逆置:reverse()
name_list = ["张飞", "刘备", "关羽"]
name_list.reverse()
print(name_list)	# ['关羽', '刘备', '张飞']
  • 排序:sort()
列表序列.sort(key=None, reverse=False)

注意:reverse表示排序规则,reverse=True降序,reverse=False升序(默认)

name_list = [1, 5, 7, 9, 4, 3]
name_list.sort()
print(name_list)	# [1, 3, 4, 5, 7, 9]

8.列表复制

  • 函数:copy()
name_list = [1, 5, 7, 9, 4, 3]
name = name_list.copy()
print(name)		# [1, 5, 7, 9, 4, 3]

9.列表遍历

  • while循环遍历
name_list = ["张飞", "刘备", "关羽"]
i = 0
while i < len(name_list):
    print(name_list[i])
    i += 1
  • for循环遍历
name_list = ["张飞", "刘备", "关羽"]
for i in name_list:
    print(i)

10. 列表嵌套

所谓的列表嵌套指的就是一个列表里面包含了其他的子列表
应用场景:要存储班级一、二、三三个班级学生姓名,且每个班级的学生姓名在一个列表

name_list = [["张飞", "关羽", "刘备"], ["周瑜", "吕蒙", "孙策"], ["典韦", "许褚", "郭嘉"]]

如何查找数据 “典韦”?

name_list = [["张飞", "关羽", "刘备"], ["周瑜", "吕蒙", "孙策"], ["典韦", "许褚", "郭嘉"]]
for i in name_list:
    if "许褚" in i:
        print(i.index("许褚"))	# 打印典韦所在字列表的索引
import random

teacher = ["A", "B", "C", "D", "E", "F", "G", "H"]
office = [[], [], []]

for name in teacher:
    num = random.randint(0, 2)
    office[num].append(name)

i = 1
for off in office:
    print(f"办公室{i}的人数是{len(off)}, 老师分别是:", end="")
    for name in off:
        print(name, end="")
    print()
    i += 1
  
# 办公室1的人数是3, 老师分别是:DFG
# 办公室2的人数是0, 老师分别是:
# 办公室3的人数是5, 老师分别是:ABCEH

二、元组

一个元组可以存储多个数据,元组内的数据是不能修改的,列表是可以修改的

1. 定义元组

# 多个数据元组
t1 = (10,20,30)
# 单个数据元组
t2 = (10,)

注意:如果定义的元组只有一个数据,那么这个数据后面也要添加逗号,否则数据类型为唯一的这个数据的数据类型

t1 = (10,)
print(type(t1))		# tuple

t2 = (10)
print(type(t2))		# int

t3 = ("张飞")
print(type(t3))		# str

2. 元组查找

元组数据不支持修改,只支持查找

  • 按下标查找数据
tuple1 = ("张飞", "关羽", "刘备")
print(tuple1[0])	# 张飞
  • index():查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表、字符串的index方法相同。
tuple1 = ("张飞", "关羽", "刘备")
print(tuple1.index("张飞"))	# 0
  • count():统计某个数据在当前元组出现的次数。
tuple1 = ("张飞", "关羽", "刘备", "张飞")
print(tuple1.count("张飞"))	# 2
  • len() : 统计元组中数据的个数
tuple1 = ("张飞", "关羽", "刘备")
print(len(tuple1))	# 3

3.元组数据修改

  • 元组内的直接数据如果修改则立即报错
tuple1 = ("张飞", "关羽", "刘备")
tuple1[0] = "赵云"	# 会报错
  • 如果元组里面有列表,修改列表里面的数据是支持的,所以自觉很重要
tuple1 = ("张飞", "关羽", "刘备", ["周瑜", "孙权"])
tuple1[3][0] = "孙策"
print(tuple1)	# ('张飞', '关羽', '刘备', ['孙策', '孙权'])

持续更新中。。。

下一节:Python字典和集合

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值