列表操作:遍历、range()、列表解析、列表切片、列表复制、元组
1. 遍历列表
letters = ['A','B','C','D','E','F','G']
for letter in letters:
print(letter)
输出:
A
B
C
D
E
F
G
记得for ...... :
有冒号,循环内容要缩进(indent)来表示它属于当前循环。
缩进约定俗成打4个空格。
2. range()
range
能生成一系列数字。几乎所有语言在数字范围上都遵循[left, right)的做法,故range(left, right)
会生成一系列从left到right-1、步长为1的数字。
nums = list(range(0,10))
print(nums)
输出:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
其他用法:
#循环内使用
for value in range(1,5):
print(value)
#设置步长:range(left,right,步长)
even_numbers = list(range(2,11,2)) #2 4 6 8 10
3. 列表解析
squares = [value**2 for value in range(1,11)]
print(squares)
输出:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
用法:
- 首先指定一个描述性的列表名(
squares
) - 然后,指定一个左方括号,并定义一个表达式(
value**2
),用于生成你要存储到列表中的值。 - 编写一个for循环,用于给表达式提供值,再加上右方括号。
4. 列表切片
letters = ['A','B','C','D','E','F','G']
#用letters[left,right]来切出索引为left到right-1的这部分列表
print(letters[0:3]) # A B C
#省略左界,将自动从列表开头开始
print(letters[:4]) # A B C D
#省略右界,将终止于列表尾
print(letters[3:]) # D E F G
#也可以用负的左界,并省略右界,表示切出倒数几个元素
print(letters[-3:]) #最后三个字母,E F G
#复制整个列表
letters_copy = letters[:] #列表letters_copy内容和letters一样
注意:
在上面的复制中,letters_copy = letters[:]
将拷贝一份letters
的内容到letters_copy
里,如果你写letters_copy = letters
,这将把letters
赋给letter_copy
从而使两者指向同一个变量:
letters = ['A','B','C','D','E','F','G']
letters_copy = letters
letters.append('1')
letters_copy.append('2')
print(letters)
print(letters_copy)
输出:
['A', 'B', 'C', 'D', 'E', 'F', 'G', '1', '2']
['A', 'B', 'C', 'D', 'E', 'F', 'G', '1', '2']
可以看到letters_copy = letters
将使两者成为同一个变量。
5.元组
元组使用()而不是[],我们可以改变整个元组,而不能改变元组的元素。
#访问元素
dimensions = (200, 50) #定义元组
print(dimensions[0])
print(dimensions[1])
输出:
200
50
#遍历元素
for dimension in dimensions:
print(dimension)
输出:
200
50
#修改元组
dimensions = (200,50)
dimensions = (400,100) #正确,可以直接修改整个元组
dimensions[0] = 10086 #错误,不能修改元组的元素
网友评论