Python for循环能够遍历任何序列的项目,如列表、字符串、元组、字典、集合等序列类型。java
语法:python
for循环的语法格式以下:shell
for iterating_var in sequence: statements(s)
流程图:数据结构
animals="dog","cat","pig""bird" for animal in animals: print(animal)#for循环中,print须要缩进
运行结果:app
dog
cat
pig
bird
能够看到,使用 for 循环的过程当中,迭代变量会前后被赋值,并代入循环体中使用。函数
在使用 for 循环时,最基本的应用就是进行数值循环。ui
好比说,想要实现从 1 到 100 的累加,能够执行以下代码:spa
print("计算 1+2+...+100 的结果为:")#保存累加结果的变量 result = 0 #逐个获取从 1 到 100 这些值,并作累加操做 for i in range(101): result += i print(result)
运行结果为:code
计算 1+2+...+100 的结果为:
5050
上面代码中,使用了 range() 函数,此函数是 Python 内置函数,用于生成一系列连续整数,多用于 for 循环中。blog
当用 for 循环遍历 list 列表或者 tuple 元组时,其迭代变量会前后被赋值为列表或元组中的每一个元素并执行一次循环体。
下面程序使用 for 循环对列表进行了遍历:
my_list = [1,2,3,4,5] for ele in my_list: print('ele =', ele)
程序执行结果为:
ele = 1 ele = 2 ele = 3 ele = 4 ele = 5
在Python中,for循环迭代元组与序列差很少,下面程序使用 for 循环对元组进行了遍历:
my_tuple = tuple("23333") print(my_tuple) #<<< ('2', '3', '3', '3', '3') for value in my_tuple: print(value)
程序执行结果以下:
3 2 3 3 3
注意:由于对于字符型的集合,输出集合中的元素的时候,不会保存顺序,因此集合中元素的顺序一般是没有定义的,与序列相同for word in words中的word标识符也是能够随意更改。
在使用 for 循环遍历字典时,常常会用到和字典相关的 3 个方法,即 items()、keys() 以及 values(),若是使用 for 循环直接遍历字典,则迭代变量会被前后赋值为每一个键值对中的键。
my_dic = {'python':"1",\ 'shell':"2",\ 'java':"3"} for ele in my_dic: print('ele =', ele)
程序执行结果为:
ele = python ele = shell ele = java
直接遍历字典,和遍历字典 keys() 方法的返回值是相同的。
循环迭代键:
d = {'x':1,'y':2,'z':3} for key in d.keys(): print(key)
除此以外,咱们还能够遍历字典 values()、items() 方法的返回值。例如:
循环迭代值:
d = {'x':1,'y':2,'z':3} for value in d.values(): print(value) my_dic = {'python':"1",\ 'shell':"2",\ 'java':"3"} for ele in my_dic.items(): print('ele =', ele)
d.items方法还能够将键-值对做为元组放回,for循环的一大好处就是能够在循环中使用序列解包
程序执行结果为:
ele = ('python', '1') ele = ('shell', '2') ele = ('java', '3')
元组转换为列表
fruits = ('apple','banana','orange') #元组转换为列表: list(fruit) #元组不能直接转换为字典,附: #元组转换为字符串: fruits.__str__()
列表转换为元组
fruit_list = ['apple','banana','orange'] #列表转换为元组: tuple(fruit_list) #列表不能直接转换为字典,附: #列表转换为字符串: str(fruit_list)
字典转换为元组
可使用函数 tuple() 和 list() 将字典转换为元组和列表,但要注意的是,这里的转换后和以前的元素顺序是不一样的,由于字典相似于散列,列表 相似于链表,元组相似于列表只是元素没法改变,因此,要把散列转换为链表而顺序不变是不可行的。但能够借助于有序字典OrderedDict,有序字典是字典的子类,它能够记住元素添加的顺序,从而获得有序的字典。有序字典这里就不深刻探讨,给出普通字典的例子参考,代码以下:
fruit_dict = {'apple':1, 'banana':2, 'orange':3} #将字典的key转换为元组: tuple(fruit_dict) #将字典的value转换为元组: tuple(fruit_dict.value()) #将字典的key转换为列表: list(fruit_dict) #将字典的value转换为列表: list(fruit_dict.value()) #附: #将字典转换为字符串: str(fruit_dict)
字符串转换为元组
要将字符串转换为指定的数据结构,那么字符串就必须符合指定数据结构的格式,并借助于 eval() 函数
#将字符串转换为元组: str = "(1,2,3)" tuple(eval(str)) #将字符串转换为列表: str = "(1,2,3)" list(eval(str)) #将字符串转换为字典: str = "{'a':1 ,'b',2}" eval(str)