day08”元组与列表“也要被你轻松拿捏

元组与列表

  • 列表的应⽤场景
  • 列表的格式
  • 列表的常⽤操作
  • 列表的循环遍历
  • 列表的嵌套使⽤

  • 元组的应⽤场景
  • 定义元组
  • 元组常⻅操作

列表的应⽤场景

思考:如果⼀个班级100位学⽣,每个⼈的姓名都要存储到变量,应该如何书写程序?声明100个变量吗?
答:列表即可, 列表⼀次性可以存储多个数据。

列表的格式

li = [1,2,3,4,"张三","李四"]

列表可以⼀次性存储多个数据,且可以为不同数据类型

列表的常⽤操作

列表的作⽤是⼀次性存储多个数据,程序员可以对这些数据进⾏的操作有:增、删、改、查。

查找

根据下标查找

name_list = ['张三', '李四', '王五','赵六']
print(name_list[0])
print(name_list[1])
print(name_list[2])

函数

  • index():返回指定数据所在位置的下标 。

语法

# 列表序列.index(数据, 开始位置下标, 结束位置下标)
name_list = ['张三', '李四', '王五','赵六']
print(name_list.index('张三', 0, 2))

注意:如果查找的数据不存在则报错。

  • count():统计指定数据在当前列表中出现的次数。
name_list = ['张三', '李四', '王五','张三']
print(name_list.count('张三'))
  • len():访问列表⻓度,即列表中数据的个数。
name_list = ['张三', '李四', '王五','赵六']
print(len(name_list))

in与not in

in:判断指定数据在某个列表序列,如果在返回True,否则返回False

not in:判断指定数据不在某个列表序列,如果不在返回True,否则返回False

name_list = ['张三', '李四', '王五','赵六']
name = input('请输⼊您要搜索的名字:')
if name in name_list:
    print(f'您输⼊的名字是{name}, 名字已经存在')
else:
    print(f'您输⼊的名字是{name}, 名字不存在')

增加

作⽤:增加指定数据到列表中。

函数

  • append():

列表结尾追加数据。

语法

# 列表序列.append(数据)
name_list = ['张三', '李四', '王五','赵六']
name_list.append('阿坤')
print(name_list)

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

name_list = ['张三', '李四', '王五','赵六']
alist = ["唱","跳","rap","篮球"]
name_list.append(alist)
print(name_list)
# ['张三', '李四', '王五', '赵六', ['唱', '跳', 'rap', '篮球']]
list1 = ["张三","李四","王五"]
print(id(list1))
list1.append("赵六")
print(id(list1))
# 列表是可变的
# 修改之后,内存地址如果不变,那他就是
  • extend():

列表结尾追加数据,如果数据是⼀个序列,则将这个序列的数据逐⼀添加到列表。

name_list = ['张三', '李四', '王五','赵六']
name_list.extend('阿坤')
print(name_list)
# ['张三', '李四', '王五', '赵六', '阿', '坤']

如果添加一个序列,则会将序列里面每一个元素添加进去

name_list = ['张三', '李四', '王五','赵六']
alist = ["唱","跳","rap","篮球"]
name_list.extend(alist)
print(name_list)
  • insert():

指定位置新增数据。

语法

# 列表序列.insert(位置下标, 数据)
name_list = ['张三', '李四', '王五','赵六']
name_list.insert(1, '阿坤')
# 结果:['张三','阿坤', '李四', '王五','赵六']
print(name_list)

删除

删除列表当中的数据

  • del

删除整个列表

name_list = ['张三', '李四', '王五','赵六']
del name_list
print(name_list)

删除指定数据(根据索引删除)

name_list = ['张三', '李四', '王五','赵六']
del name_list[1]
print(name_list)
# ['张三', '王五', '赵六']
  • pop():

删除指定下标的数据(默认为最后⼀个),并返回该数据。

name_list = ['张三', '李四', '王五','赵六']
name_list.pop(1)
print(name_list)
# ['张三', '王五', '赵六']
  • remove():

移除列表中某个数据的第⼀个匹配项。

# 列表序列.remove(数据)
name_list = ['张三', '李四', '王五','赵六']
name_list.remove("张三")
print(name_list)
# ['李四', '王五', '赵六']
  • clear():

清空列表

name_list = ['张三', '李四', '王五','赵六']
name_list.clear()
print(name_list)
# []

修改

修改指定下标数据

直接修改

name_list = ['张三', '李四', '王五','赵六']
name_list[0] = '阿坤'
print(name_list)
  • reverse()

逆置

num_list = [1, 5, 2, 3, 6, 8]
num_list.reverse()
print(num_list)
# [8, 6, 3, 2, 5, 1]
  • sort()

排序

语法

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

# 列表序列.sort(reverse=False)
li = [2,3,5,6,1,4,8]
li.sort(reverse=False)
print(li)
# [1, 2, 3, 4, 5, 6, 8]

li.sort(reverse=True)
print(li)
# [8, 6, 5, 4, 3, 2, 1]

复制

  • copy()

复制一个列表

name_list = ['张三', '李四', '王五','赵六']
name_li2 = name_list.copy()
print(name_li2)
# ['张三', '李四', '王五','赵六']

列表的循环遍历

依次打印列表中的各个数据

for循环

name_list = ['张三', '李四', '王五','赵六']
for i in name_list:
    print(i)

while循环

i = 0
name_list = ['Tom', 'Lily', 'Rose']
while i < len(name_list):
    print(name_list[i])
    i += 1

列表的嵌套

所谓列表嵌套指的就是⼀个列表⾥⾯包含了其他的⼦列表

# 找到篮球
name_list = [['张三', '李四', '阿坤'], ['唱', '跳', '篮球'], ['甲', '乙', '丙']]
# 第⼀步:按下标查找到篮球所在的列表
print(name_list[1])
# 第⼆步:从李四所在的列表⾥⾯,再按下标找到数据李四
print(name_list[1][2])

元组

思考:如果想要存储多个数据,但是这些数据是不能修改的数据,怎么做?

定义元组

定义元组使⽤⼩括号,且逗号隔开各个数据,数据可以是不同的数据类型。

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

# 单个数据元组
t2 = (10,)

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

元组的常⻅操作

元组数据不⽀持修改,只⽀持查找,具体如下

  • 根据下标查找
tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1[0])
  • index():

查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表、字符串的index⽅法相同。

tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1.index('aa'))
  • count():

统计某个数据在当前元组出现的次数。

tuple1 = ('aa', 'bb', 'cc', 'bb')
print(tuple1.count('bb'))
  • len():

统计元组中数据的个数。

tuple1 = ('aa', 'bb', 'cc', 'bb')
print(len(tuple1))

元组内的直接数据如果修改则⽴即报错

但是如果元组⾥⾯有列表,修改列表⾥⾯的数据则是⽀持的。

tuple2 = (10, 20, ['aa', 'bb', 'cc'], 50, 30)
print(tuple2[2]) # 访问到列表
# ['aa', 'bb', 'cc']
tuple2[2][0] = 'aaaaa'
print(tuple2)
# (10, 20, ['aaaaa', 'bb', 'cc'], 50, 30)

作业

1,办公室里有张三, 李四, 王五3个人, 现在小宋也到班公室来上班了,如何用列表来表示?并输出办公室有哪些人;
2,过了一会, 王五有事离开了办公室, 程序应该如何表达?并输出办公室有哪些人
3,有一个列表li1 = ["张三", "王五",,"坤哥","李四", "赵六", "坤哥","王五","坤哥",,"张三",坤哥"],将列表重复的数据删除,保留一个,不可以使用集合

posted @ 2025-04-11 21:16  Lovcsy  阅读(11)  评论(0)    收藏  举报