操作列表
遍历列表
用for循环来打印列表中所有元素
magicians=['alice','davia','carolina']
for magician in magicians:
print(magician)
alice
davia
carolina
在for循环中执行更多操作
在for循环中可对每个元素执行任何操作。
magicians=['alice','davia','carolina']
for magician in magicians:
print(magician.title()+', that is a good trick')
Alice, that is a good trick
Davia, that is a good trick
Carolina, that is a good trick
在代码行for magician in magicians:后面,每个缩进的代码行都是循环的一部分,且将针对列表中的每一个值都执行一次,因此可对列表中的每一个值执行任意次操作
magicians=['alice','davia','carolina']
for magician in magicians:
print(magician.title()+', that is a good trick')
print('I can wait to see your next trick,'+magician.title()+'.\n')
Alice, that is a good trick
I can wait to see your next trick,Alice.
Davia, that is a good trick
I can wait to see your next trick,Davia.
Carolina, that is a good trick
I can wait to see your next trick,Carolina.
由于每个print语句都缩进了,所以他们都将针对列表的每一个元素执行一次
在for循环结束后执行一些操作
在for循环后面,没有缩进的代码都只执行一次,不会重复执行。
magicians=['alice','davia','carolina']
for magician in magicians:
print(magician.title()+', that is a good trick')
print('I can wait to see your next trick,'+magician.title()+'.\n')
print('Thank you')
Alice, that is a good trick
I can wait to see your next trick,Alice.
Davia, that is a good trick
I can wait to see your next trick,Davia.
Carolina, that is a good trick
I can wait to see your next trick,Carolina.
Thank you
避免缩进错误
忘记缩进
忘记缩进额外的代码行
magicians=['alice','davia','carolina']
for magician in magicians:
print(magician.title()+', that is a good trick')
print('I can wait to see your next trick,'+magician.title()+'.\n')
Alice, that is a good trick
Davia, that is a good trick
Carolina, that is a good trick
I can wait to see your next trick,Carolina.
由于第二条print()语句没有缩进,他只在循环结束后执行一次,而magician最后的值是carolina,所以只有carolina收到了消息。
不必要的缩进/循环后不必要的缩进
遗漏了冒号
创建数字列表
可用函数range()
for value in range(1,5):
print(value)
1
2
3
4
函数range()让python从你指定的第一个值开始数,到达指定的第二个数结束,而不会打印第二个值,所以这里不包含5
使用range()创建数字列表
可用函数list()将range()的结果直接转换为列表,range()可直接作为list()的参数,输出将为一个数字列表
n=list(range(1,10))
print(n)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
使用range()函数时,还可指定步长
n=list(range(2,11,2))
print(n)
这个实例中,函数range()从2开始数,然后不断加2,直到到达或超过终值11
使用range()函数,几乎能够创建任何需要的数字集,例如下面的实例
s=[]
for value in range(1,11):
h=value**2
s.append(h)
print(s)
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
对数据列表执行简单的统计计算
有几个专门处理数字列表的pythin函数:min,max,sum等等
列表解析
前面介绍的生成列表s的方式包含三四行代码,列表解析只需要一行即可,它将for循环和创建新元素的代码合并成一行,并自动添加新元素。
s=[v**2 for v in range(1,11)]
print(s)
首先指定一个列表名,然后,指定一个表达式来生成你要存到列表中的值,在这个实例中,表达式为v**2,然后编写一个for循环,给表达式提供值,注意这里没有冒号
使用列表的一部分
切片
要创建切片,它的索引和函数range()一样都是在到达第二个索引前面的元素后停止
q=['a','b','c','d']
print(q[0:3])
['a', 'b', 'c']
如果你没有指定第一个索引,python将从第一个元素提取
print(q[:3])
要让切片终止于列表末尾,可省略终止索引
q=['a','b','c','d']
print(q[2:])
['c', 'd']
使用负数索引来输出列表的最后几个元素
q=['a','b','c','d']
print(q[-3:])
['b', 'c', 'd']
遍历切片
切片可以和for循环搭配使用
q=['a','b','c','d','e','f']
for m in q[:4]:
print(m)
a
b
c
d
复制列表
复制列表的方法是创建一个包含整个列表的切片,方法是同时省略起始索引和终止索引
my_food=['a','s','d']
frends_food=my_food[:]
print(my_food)
print(frends_food)
['a', 's', 'd']
['a', 's', 'd']
注意这是两个不同的列表
元组
定义元组
列表是可以修改的,但是有时需要不能修改的,不可变的列表叫做元组,元组使用圆括号,而不是方括号
d=(12,34)
print(d[0])
print(d[1])
12
34
d[0]=13
将会报错
遍历元组所有的值
像列表一样,用for循环来遍历元组所有的值
d=(12,34)
for s in d:
print(s)
12
34
修改元组变量
虽然不能修改元组的元素,但是可以给存储元组的变量赋值,这是合法的
d=(12,34)
print(d[0])
print(d[1])
d=(23,34)
print(d[0])
print(d[1])
设置代码格式
建议每级缩进都是用四个空格,混合使用制表符和空格可能导致问题
建议每行不超过72个字符
使用空行来把程序的不同部分分隔开
PEP8 还有其他格式推荐