python入门基础知识五(for循环、公共操作与推导式)
for循环
break终止循环
a = 'abcd' for i in a: ... if i == 'c': ... print("'c' stands for 'cease'") ... break ... print(i) ... a b 'c' stands for 'cease'
continue退出本次循环,继续执行下一个循环
for i in a: ... if i == 'c': ... print("'c' stands for 'cease'") ... continue ... print(i) ... a b 'c' stands for 'cease' d
for...else
for i in array:
codes for loop
else:
if exit loop normally then run these codes...
for i in a: ... if i == 'c': ... print("'c' stands for 'cease'") ... break ... print(i) ... else: ... print('This loop has ended normally.') ... a b 'c' stands for 'cease' # 循环没有正常结束,没有返回预先写好的提示 for i in a: ... if i == 'c': ... print("'c' stands for 'cease'") ... continue ... print(i) ... else: ... print('This loop has ended normally.') ... a b 'c' stands for 'cease' d This loop has ended normally. # 循环正常结束,返回提示
公共操作
运算符
公共方法:支持字符串、列表、元组、集合、字典
enumerate
作用是将要给可遍历的数据对象(如,列表、元组或字符串)组合为一个索引序列,同时列出数据及其下标,一般与for循环联用。
enumerate(可遍历对象,start = 0) # 下标起始默认值为0,可不写
a = ['sun','moon','star'] for i in enumerate(a): ... print(i) ... (0, 'sun') (1, 'moon') (2, 'star')
for i in enumerate(a,start = 1): ... print(i) ... (1, 'sun') (2, 'moon') (3, 'star')
for i,j in enumerate(a): ... print(f'The index is {i}, corresponding data is {j}') ... The index is 0, corresponding data is sun The index is 1, corresponding data is moon The index is 2, corresponding data is star
推导式
主要作用是简化代码
列表的推导式
创建一个由0-10组成的列表,如果不用推导式,就必须令 a = [1,2,3,4...10]。如果创建一个从0-100的列表呢?
range(起,终,步长) # 步长如果是1可以省略不写,注意,终和下标是一样的,如果要创建0-10的数组,必须要把终的位置写在11!
a = [] for i in range(0,11): ... a.append(i) ... print(a) # print的对齐位置很重要 ... [0] [0, 1] [0, 1, 2] [0, 1, 2, 3] [0, 1, 2, 3, 4] [0, 1, 2, 3, 4, 5] [0, 1, 2, 3, 4, 5, 6] [0, 1, 2, 3, 4, 5, 6, 7] [0, 1, 2, 3, 4, 5, 6, 7, 8] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] a = [] for i in range(0,11): ... a.append(i) ... print(a) # print的对齐位置很重要 ... [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
带条件语句的列表推导式
创建一个0-10以内偶数组成的列表
a = [i for i in range(0,11,2)] print(a) [0, 2, 4, 6, 8, 10] a = [i for i in range(0,11) if i%2 == 0] # 除以2,余数为0的i print(a)
[0, 2, 4, 6, 8, 10]
字典推导式
用于将两个列表合并为字典,或提取字典中的目标数据
list1 = ['beef','mutton','pork'] list2 = [55,45,22] a = {list1[i]:list2[i] for i in range(len(list2))} print(a) {'beef': 55, 'mutton': 45, 'pork': 22} list1.append('fish') list1 ['beef', 'mutton', 'pork', 'fish'] a = {list1[i]:list2[i] for i in range(len(list2))} print(a) {'beef': 55, 'mutton': 45, 'pork': 22} a = {list1[i]:list2[i] for i in range(len(list1))} # 注意,len要用最短的那个列表,否则会报错 Traceback (most recent call last): File "<input>", line 1, in <module> File "<input>", line 1, in <dictcomp> IndexError: list index out of range
b = {i:j for i,j in a.items() if j > 40} # i代表的是key,j代表的是value print(b) {'beef': 55, 'mutton': 45}
集合推导式
不常用,主要是数字的运算
c = {2,2,3} d = {i ** 3 for i in c} print(d) {8, 27} # 集合自动去重,进行了3次方的运算