操作列表、元组
一、for循环注意事项
二、数值列表的创建(range函数的使用)
三、数字列表简单的统计计算
四、列表解析
五、切片
六、元组
七、空行
一、for循环注意事项:
magicians = ['alice','david','carolina']
for magician in magicians:
print(magicians)
输出:
alice
david
carolina
这段代码让python从列表中取出一个元素并储存在变量magician中,然后执行for循环里的语句。
注意 for循环后面有冒号 ":"不能漏;当for循环后面没有一个缩进语句时,python 会报错。
循环中变量的值不会随我们的操作改变,如:
for i in range(1,2,3):
print(i,i**2,i**3)
i += 1 //无用
最后一行无用,i是从range创造的列表一个个取值,每个值在列表创建好的时候就是固定的,尽管加 1 了但是 i 还是会回到列表中再次取值,所以没有影响。
二、数值列表的创建
range()函数的使用:
for value in range(1,5):
print(value)
输出:
1
2
3
4
range()函数打印是左闭右开的,上例中不会打印5.
再用list()函数创建数值列表
number = list(range(1,6))
print(numbers)
输出:
[1,2,3,4,5]
使用range()还可以指定步长,例如打印1~10内的偶数
even_numbers = list(range(2,11,2))
print(even_numbers)
输出:
[2,4,6,8,10]
指定的步长可以为负数
for i in range(13,1,-2):
print(i,end = ' ') #end = ‘ ’ 表示后面加上空格
输出:
13 11 9 7 5 3
三、数字列表简单的统计计算
>>>digit = [1,2,3,4,5,6,7,8,9,0]
>>>min(digit)
0
>>>max(digit)
9
>>>sum(digit)
45
四、列表解析
squares = [value**2 for value in range(1,11)]
print(squares)
'''相当于这段代码
squares = []
for value in range(1,11):
square = value**2 #当然这两行代码也可写成
squares.append(square) #squares.append(value**2)
print(squares)
'''
输出:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
要使用这种语法首先指定一个描述性的列表名如:squares;然后指定一个左边方括号并定义一个表达式,用于生成你要储存到列表中的值。这里表达式为value**2.它计算平方值,接下来编写一个for循环,用于给表达式提供值,再加上右边方括号。这里for循环给表达式将1~10提供给表达式。并且这里使用的for循环后面没有冒号。
五、切片
- 打印切片
players = ['charles','martina','michael','florence','eli']
print(players[0:3]) #打印列表前3个元素
print(players[1:4]) #打印列表第2~4个元素
print(players[:4]) #没有第一个索引,python自动从列表开头开始
print(players[2:]) #打印第3个到末尾所有元素
print(players[:]) #没有任何索引,打印所有元素
print(players[-3:]) #打印列表最后3个元素
输出:
['charles', 'martina', 'michael']
['martina', 'michael', 'florence']
['charles', 'martina', 'michael', 'florence']
['michael', 'florence', 'eli']
['charles', 'martina', 'michael', 'florence', 'eli']
['michael', 'florence', 'eli']
- 遍历切片
players = ['charles','martina','michael','florence','eli']
for player in players[:3]:
print(player.title())
输出:
Charles
Martina
Michael
- 复制列表
my_foods = ['pizza','falafel','carrot cake']
friend_foods = my_foods[:] #将列表复制给friend_foods
my_foods.append('cannoli')
friend_foods.append('ice cream')
print('我最爱的食物是:')
print(my_foods)
print('我朋友最爱的食物是:')
print(friend_foods)
输出:
我最爱的食物是:
['pizza', 'falafel', 'carrot cake', 'cannoli']
我朋友最爱的食物是:
['pizza', 'falafel', 'carrot cake', 'ice cream']
从输出结果可以看到通过加了列表元素后,两个列表的元素不同,所以代码第二行执行的是复制一份,不是赋值。
不通过切片下面这样是不能复制列表的
my_foods = ['pizza','falafel','carrot cake']
friend_foods = my_foods
这是将列表my_foods赋值给friend_foods,两个列表实际是一个。
六、元组
dimensions = (200,50)
for dimension in dimensions:
print(dimension)
元组大部分像列表一样,但元组中的元素是不能改变的。例如:
dimensions[0] = 250 #这不可行
这样编译器是会报错的,只能通过重新给元组变量赋值。如:
dimensions = (200,50)
for dimension in dimensions:
print(dimension)
dimensions = ('hello','world','!')
for dimension in dimensions:
print(dimension)
输出:
200
50
hello
world
!
七、空行
程序中不同部分可用空格来分隔开,不会影响运行。但也不能滥用。