目录
前言
在python 中,for 循环的基本使用方法如下
for item in sequence:
expression
其中sequence 为可迭代的对象,item 为序列中的每个对象
可以分为以下两类:
一类是列表list,元组tuple,字典dict,set集合,str字符串等的集合数据类型
一类是generator,包括生成器和带yield的generator function
对于列表,元组,集合以及字符串
对于字符串:
st ="hello world"
for i in st:
print(i,end =' ')
h e l l o w o r l d
对于列表:
List = [1,2,3,4,5]
for item in List:
print(item, end=" ")
1 2 3 4 5
对于元组:
Tuple = (1,2,3,4,5)
for item in Tuple:
print(item, end=" ")
1 2 3 4 5
对于set集合:
Set = {1,2,3,4,5}
for item in Set:
print(item, end=" ")
1 2 3 4 5
对于range
for循环打印数字的话可以借用range函数
range函数可以取到一个范围内的整数,相比while要方便很多
range(b) 默认从0开
range(a,b) 左闭右开,包括左边不包括右边
range(a,b,c) 从a到b的整数,间隔c访问一次
for i in range(10):
print(i,end =' ')
print('\n')
for i in range(4,10):
print(i,end =' ')
print('\n')
for i in range(1,10,2):
print(i,end =' ')
0 1 2 3 4 5 6 7 8 9
4 5 6 7 8 9
1 3 5 7 9
对于字典
Dict = {1:"a",2:"b",3:"c"}
for key in Dict:
print(key, ':',Dict[key])
for key in Dict.keys():
print(key, ':',Dict[key])
for key,value in Dict.items():
print(key,':', value)
1 : a
2 : b
3 : c
1 : a
2 : b
3 : c
1 : a
2 : b
3 : c
Dict = {1:"a",2:"b",3:"c"}
for key in Dict:
print(key, end=" ")
print('\n')
for value in Dict.values():
print(value, end=" ")
print('\n')
for item in Dict.items():
print(item, end=" ")
1 2 3
a b c
(1, ‘a’) (2, ‘b’) (3, ‘c’)
对于generator
List = [1,"a",3,4,5]
gen = (item for item in (List))
print(type(gen))
print(gen)
for item in gen:
print(item)
<class ‘generator’>
<generator object at 0x000001BB6772ABA0>
1
a
3
4
5
创建带yield的generator function。例如,斐波拉契数列的生成器
def fib(max):
n, a, b = 0, 0, 1
while n < max:
yield b
a, b = b, a + b
n = n + 1
return 'done'
for item in fib(15):
print(item, end=" ")
1 1 2 3 5 8 13 21 34 55 89 144 233 377 610
列表生成式
a = [i*i for i in range(6)]
print(type(a))
print(a)
#<class 'list'>
#[0, 1, 4, 9, 16]
b = [m + n for m in '爱心难' for n in '在口开']
print(type(b))
print(b)
<class ‘list’>
[0, 1, 4, 9, 16, 25]
<class ‘list’>
[‘爱在’, ‘爱口’, ‘爱开’, ‘心在’, ‘心口’, ‘心开’, ‘难在’, ‘难口’, ‘难开’]
使用 enumerate() 函数遍历
numbers = [12, 20, 30, 55, 65]
for i, n in enumerate(numbers):
print(i, n)
0 12
1 20
2 30
3 55
4 65
使用 iter() 函数遍历
numbers = [12, 20, 30, 55, 65]
for i in iter(numbers):
print( i )
12
20
30
55
65
结合 range() 和 len() 函数进行遍历
numbers = [12, 20, 30, 55, 65]
for i in range(len(numbers)):
print(i, numbers[i])
0 12
1 20
2 30
3 55
4 65