遍历整个列表
magicians=['Alan','sb','fuck'] for magician in magicians: print(magician)
使用循环时注意冒号和缩进,避免忘记缩进以及不必要的缩进
magicians=['Alan','sb','fuck'] for magician in magicians: print(f"{magician.title()} ,that was a great trick!") print(f"I can't wait to see your next trick,{magician.title()}\n") print("fuck your ass")
for语句末尾的冒号告诉Python,下一行是循环的第一行
创建数值列表:
①使用range()函数
for value in range(1,5): print(value) # 输出1,2,3,4 for value in range(6): print(value) # 输出0,1,2,3,4,5
②使用range()创建数值列表
可以使用list()函数将range()的结果直接转换为列表,如果将range()作为list()的参数,输出将是一个数值列表
numbers=list(range(6)) print(numbers)
在使用range()函数时,还可以指定步长,为此,可以给这个函数指定第三个参数,Python将根据这个步长来生成数。
for example:
even_numbers =list(range(2,11,2)) print(even_numbers)
使用range()函数几乎能够创建任意数值集合,例如创建一个列表,其中包含前10个整数(1~10)的平方。
squares=[] for value in range(1,11): square=value**2 squares.append(square) # 也可以省略square,直接使用vlaue**2 print(squares)
对数值列表执行简单的统计计算
min(列表名) #得到列表中的最小值
max(列表名) #得到列表中的最大值
sum(列表名) #列表中所有值求和
列表推导式:
squares=[value**2 for value in range(1,11)] print(squares)
要使用这种语法,首先指定一个描述性的列表名,如squares,然后指定一个左方括号,并定义一个表达式,用于生成要存储到列表中的值,这上面的式子中,表达式为value**2,它计算平方值,接下来编写一个for循环,用于个以表达式提供值,再加上右方括号。
列表推导式可以大大减少代码量,提升工作效率。
练习4.5
values=[] for value in range(1,1000001): values.append(value) print("That's all.") print(min(values)) print(max(values)) print(sum(values)
练习4.6
numbers=list(range(1,21,2))
print(numbers)
for number in numbers:
print(number)
练习4.7
numbers=list(range(3,31,3))
print(numbers)
for number in numbers:
print(number)
练习4.8
squares=[]
for value in range(1,11):
squares.append(value**3)
print(squares)
练习4.9
squares=[value**3 for value in range(1,11)]
print(squares)
列表的一部分:切片
要创建切片,要指定使用的第一个元素和最后一个元素的索引,与range()函数一样,Python在到达指定的第二个索引之前的元素时停止,要输出列表中的前三个元素,需要指定索引0和3,这将返回索引分别为0、1、2的元素
players=['charles','martina','florence','eli'] print(players[0:3])
输出的是:
['charles', 'martina', 'florence']
可以生成列表的任意子集,例如要提取列表的第二、第三、第四个元素,可将起始索引指定为1,并将终止索引指定为4
如果没有指定第一个索引,Python将从列表开头开始提取
players=['charles','martina','florence','eli'] print(players[:2])
如果没有指定第二个索引,将输出从特定位置到列表末尾所有元素
players=['charles','martina','florence','eli'] print(players[-4:])
遍历切片:
players=['charles','martina','florence','eli'] print("there are two guys in my team:") for player in players[:2]: print(player)
复制列表,可以创建一个包括整个列表的切片([:]),不可以直接将原有的列表直接赋值给新列表(用于理解标签的好例子)
players=['charles','martina','florence','eli'] another_players=players players.append('abc') another_players.append('fuck') print(players) print(another_players)
上下这两组的输出结果是不同的,切片是直接对目标进行操作
players=['charles','martina','florence','eli'] another_players=players[:] players.append('abc') another_players.append('fuck') print(players) print(another_players)
练习4.10
players=['charles','martina','florence','eli','sdasdaw']
print(f"The first three items in the list are:{players[:3]}")
print(f"Three tiems frm the middle of the list are:{players[1:4]}")
print(f"The last three items in the list are:{players[-3:]}")
练习4.11
players=['charles','martina','florence','eli']
another_players=players[:]
players.append('abc')
another_players.append('fuck')
for player in players:
print(player)
print("\n")
for another_player in another_players:
print(another_player)
元组:
不可变的列表称为元组
元组看起来很像列表,但使用圆括号而不是方括号来标识,取其中元素时用的是方括号
dimensions=(200,50) print(dimensions[0]) print(dimensions[1])
元组是无法修改的,但是可以对元组进行重新赋值:
dimensions=(200,50) print(dimensions[0]) print(dimensions[1]) for dimension in dimensions: print(dimension) dimensions=(400,100) for dimension in dimensions: print(dimension)
代码格式:
每级缩进四个空格,使用Tab键
建议每行不超过80个字符