列表与元组

浏览 1622

课文

列表的概念

列表就是多个任意元素按顺序排列的组合。

创建列表有好几种不同的方式,最简单的方式是用方括号将元素包含在内,同时用逗号作间隔。

例:

[10, 20, 30, 40]
['西瓜', '南瓜', '冬瓜', '西红柿']
[1, '太阳花', 1.2, ['小明', 2]]

第一个列表全部由 int 类型的数据组合而成,第二个列表全部由 str 类型的数据组合而成。像第三个列表就是由 intstr 和 一个 list类型组合而成。

修改列表

就像字符串的操作一样,我们依旧可以用序号去获取列表中的元素。使用方括号操作符,同时记得序号从 0 开始。

dogs = ['泰迪', '哈士奇', '金毛']
print(dogs[0])
泰迪

同时我们还可以修改列表中的元素。

dogs = ['泰迪', '哈士奇', '金毛']
dogs[0] = '秋田犬'
print(dogs)
['秋田犬', '哈士奇', '金毛']

in 操作符可以帮助我们判断元素是否在列表中。

dogs = ['泰迪', '哈士奇', '金毛']
print('泰迪' in dogs)
print('柴犬' in dogs)
True
False

+ 操作符可用来拼接列表。

dogs = ['泰迪', '哈士奇', '金毛']
cats = ['蓝猫', '波斯猫']
pets = dogs + cats
print(pets)
['泰迪', '哈士奇', '金毛', '蓝猫', '波斯猫']

* 操作符可以重复列表。

cats = ['蓝猫', '波斯猫']
print(cats * 2)
['蓝猫', '波斯猫', '蓝猫', '波斯猫']

列表切片

列表的切片与字符串类似,有所遗忘的同学可以回看下字符串那章。

t = ['a', 'b', 'c', 'd', 'e', 'f']
print(t[1:3])
print(t[:4])
print(t[3:])
print(t[:])
['b', 'c']
['a', 'b', 'c', 'd']
['d', 'e', 'f']
['a', 'b', 'c', 'd', 'e', 'f']

不同的是列表可对切片再赋值,如果切片的长度与赋值的列表长度不同,会影响到原有列表的长度。

t = ['a', 'b', 'c', 'd', 'e', 'f']
t[1:3] = ['x', 'y', 'z']
print(t)
['a', 'x', 'y', 'z', 'd', 'e', 'f']

列表的方法

append 可在列表结尾追加一个元素。

cats = ['蓝猫', '波斯猫']
cats.append('布偶猫')
print(cats)
['蓝猫', '波斯猫', '布偶猫']

extend 则是同时追加多个元素。

cats = ['蓝猫', '波斯猫']
cats.extend(['布偶猫', '哆啦A梦'])
print(cats)
['蓝猫', '波斯猫', '布偶猫', '哆啦A梦']

sort 则可以帮助我们排序列表。

t = ['d', 'c', 'e', 'b', 'a']
t.sort()
print(t)
['a', 'b', 'c', 'd', 'e']

删除元素

pop 可以帮助我们通过序号删除元素,如果不提供序号值默认删除最后一个元素。pop 在删除一个元素的同时会返回元素。

cats = ['蓝猫', '波斯猫', '哆啦A梦']
print(cats.pop())
print(cats)
哆啦A梦
['蓝猫', '波斯猫']

如果不需要返回被删除的元素值,也可以使用 del 操作符删除元素。

cats = ['蓝猫', '波斯猫', '哆啦A梦']
del cats[0]
print(cats)
['波斯猫', '哆啦A梦']

如果要移除一段切片,同样可以用del操作符。

cats = ['蓝猫', '波斯猫', '哆啦A梦', '加菲']
del cats[1:3]
print(cats)
['蓝猫', '加菲']

如果需要移除已知的元素,可以用 remove 方法。

cats = ['蓝猫', '波斯猫', '哆啦A梦']
cats.remove('蓝猫')
print(cats)
['波斯猫', '哆啦A梦']

列表相关函数

有一些内建函数可以让我们直接用在列表上。

例:

nums = [3, 41, 12, 9, 74, 15]
print('元素个数:', len(nums))
print('元素最大值:', max(nums))
print('元素最小值:', min(nums))
print('元素值总和:', sum(nums))
print('平均数:', sum(nums) / len(nums))
元素个数: 6
元素最大值: 70
元素最小值: 3
元素值总和: 150
平均数: 25.0

元组

在 python 中元组与列表非常相似甚至有时让人难以区分。元组同样是一系列元素的集合,同样支持任意类型。最大的区别是列表是可以修改的,元组不行。

元组的定义很直观,直接将数据用逗号分隔。

cats = '蓝猫', '波斯猫', '哆啦A梦'
print(type(cats))
print(cats)
<class 'tuple'>
('蓝猫', '波斯猫', '哆啦A梦')

如果我们尝试对元组中的数据进行修改,则会报错。

cats = '蓝猫', '波斯猫', '哆啦A梦'
cats[0] = '美短'
Traceback (most recent call last):
  File ".\test\qqwe.py", line 50, in <module>
    cats[0] = '美短'
TypeError: 'tuple' object does not support item assignment

实战

1.引导用户输入三个他最喜欢的动物,并将其保存到数组中,最后打印数组。

解析

1.引导用户输入三个他最喜欢的动物,并将其保存到数组中,最后打印数组。

animals = []
animals.append(input('请输入三个你最喜欢的动物:\n'))
animals.append(input())
animals.append(input())
print(animals)
请输入三个你最喜欢的动物:
小狗
小猫
小老鼠
['小狗', '小猫', '小老鼠']
点击查看

评论

登录参与讨论

wwd

元祖的使用还是不太懂

2021-06-24

回复

充电宝

简单那

2021-11-07

回复

共 2 条
  • 1
前往
  • 1