Python学习之路(4)操作列表

茴香豆 Lv5

在本章中,你将学习如何遍历整个列表、使用列表的一部分、元组。

操作列表

1.遍历整个列表

遍历列表元素时,选择描述单个列表元素的有意义的名称会是一个不错的选择。

1
2
3
4
5
6
7
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician)
# output:
alice
david
carolina

2.创建数值列表

2.1使用函数range()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# range() 左闭右开
for value in range(1,5):
print(value)
# output
1
2
3
4
# range() and list 利用range构建列表
numbers = list(range(1,6))
print(numbers) # [1, 2, 3, 4, 5]
# set pace 设置range步长
even_numbers = list(range(2,11,2))
print(even_numbers) # [2, 4, 6, 8, 10]

2.2对数字列表进行简单的统计计算

1
2
3
4
5
6
7
>>> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> min(digits) # 返回最小值
0
>>> max(digits) # 返回最大值
9
>>> sum(digits) # 返回元素和
45

2.3列表解析

列表解析将for循环和创建新元素的代码合并成一行,并自动附加新元素。

1
2
3
# list comprehension 列表解析
squares = [value**2 for value in range(1,11)]
print(squares) # [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

3.使用列表的一部分

3.1切片

1
2
3
4
5
6
7
8
9
10
11
12
13
# slice list 左闭又开,省略左从头开始,省略右末尾结束
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[1:3]) # ['martina', 'michael']
print(players[:4]) # ['charles', 'martina', 'michael', 'florence']
print(players[2:]) # ['michael', 'florence', 'eli']
print(players[-3:]) # ['michael', 'florence', 'eli']
# 遍历切片
for player in players[:3]:
print(player.upper())
# output
CHARLES
MARTINA
MICHAEL

3.2复制

正确的复制:

1
2
3
4
5
6
7
8
# copy list
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]
my_foods.append('cannoli')
print("my_foods: ", my_foods)
# my_foods: ['pizza', 'falafel', 'carrot cake', 'cannoli']
print("friend_foods: ", friend_foods)
# friend_foods: ['pizza', 'falafel', 'carrot cake']

错误的复制(并没有复制列表,而是引用了同一个列表):

1
2
3
4
5
6
7
8
# not copy list
my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods
my_foods.append('cannoli')
print("my_foods: ", my_foods)
# my_foods: ['pizza', 'falafel', 'carrot cake', 'cannoli']
print("friend_foods: ", friend_foods)
# friend_foods: ['pizza', 'falafel', 'carrot cake', 'cannoli']

可以看到直接赋值,即使只是修改my_foods,friend_foods仍会跟my_foods保持一致。

4.元组

列表非常适合用于存储在程序运行期间可能变化的数据集。但有时候需要存储不能改变的元素,元组可以满足这种需求,不可变的列表称为元组。

  • 除了不支持修改,其他与列表相同
1
2
3
4
5
6
7
8
9
# tuple 元组
dimensions = (200, 50)
print(dimensions[0]) # 200
print(dimensions[1]) # 50
# dimensions[0] = 10 报错,元组不可变
print("Original ", dimensions) # Original (200, 50)
# 可赋值
dimensions = (400, 100, 50)
print("Modified ", dimensions) # Modified (400, 100, 50)
  • Title: Python学习之路(4)操作列表
  • Author: 茴香豆
  • Created at : 2022-07-01 11:15:00
  • Updated at : 2022-07-01 12:42:36
  • Link: https://hxiangdou.github.io/2022/07/01/Python_4/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments