【Python技巧】——几种遍历

文章目录

  • 键值对遍历
    • for key, value in dict.items():
    • for key in dict.keys()
    • for value in dict.values()
  • 列表遍历
    • for item in list:
    • for index in range(len(list)):
    • for index,value in enumerate(list):
  • 可递归变量的元素是元组
    • 3个元素,取1个
    • 3个元素, 取3个
    • 3个元素,只取2个(1 <, < 3)(会报错)
    • 3个元素,取4个(>3) (会报错)
  • zip()函数遍历多个数组
    • 使用zip()函数可以遍历多个数组
    • zip()遍历会匹配最短的数组,即是短板效应

键值对遍历

for key, value in dict.items():

同时遍历键和值,可以在dict后面加一个dict.items()进行遍历,注意需要使用两个变量来接收遍历的值。
在 Python 中,字典是一种无序的数据类型,存储的是键(key)和值(value)之间的关联关系,不保存它们的位置信息。
在字典中,每一个键(key)对应唯一的值(value),而且键(key)必须是不可变的类型(如字符串、整数或元组等),所以我们无法使用索引或位置信息来访问或操作键值对。相反,我们需要通过键来获取对应的值,或者对字典进行遍历,获取其中的所有键值对。
同时 dict.items遍历有点类似enumerate(list)的双变量遍历,不过dict是只有key、value,而list是只有index、value
【Python技巧】——几种遍历_第1张图片

for key in dict.keys()

遍历字典的键可以通过for key in dict.keys() 或者 `for key in dict:进行遍历
【Python技巧】——几种遍历_第2张图片
两种遍历方式得到的结果是相同的
【Python技巧】——几种遍历_第3张图片

for value in dict.values()

遍历字典的值,可以使用`for value in dict.values():
【Python技巧】——几种遍历_第4张图片

列表遍历

for item in list:

【Python技巧】——几种遍历_第5张图片

for index in range(len(list)):

只获取列表元素的位置信息,可通过range(len(list)的方式进行遍历。需要注意的是,列表的初始位置为0,通过range放回的初始值也是0. 如果需要特别的值的话,一般是等差数列值,可以在range部分,或者遍历体内进行进一步的定义。
【Python技巧】——几种遍历_第6张图片

for index,value in enumerate(list):

列表是有序可遍历变量,所以列表的元素的位置具有意义。可通过enumerate(list)的方式同时遍历其元素位置index和值value
【Python技巧】——几种遍历_第7张图片

可递归变量的元素是元组

for inputs, targets in train_ds:
	print("inputs shape:", inputs.shape)
	print("inputs dtype:", inputs.dtype)
	break

在train_ds中,数据是以tuple元组的形式保存的

train_ds = [(inputs,targets), (inputs,targets)]
  • 当我们以元组元素个数来遍历train_ds,就能将元组中的数据存储到对应的变量中
  • 如果for 后面只有一个变量的话,则直接返回遍历的元组tuple

3个元素,取1个

如果遍历时只指定一个变量的话,那么默认返回遍历中的整个原则
【Python技巧】——几种遍历_第8张图片

3个元素, 取3个

按照元组中元素个数,遍历的话,就会将元组中每个元素赋值到对应的变量中
【Python技巧】——几种遍历_第9张图片

3个元素,只取2个(1 <, < 3)(会报错)

例如我们如果元组中有3个元素,但是希望通过遍历获得a,b 两个变量的话,就会触发valueError,也就是说遍历会返回3个变量,但是我们只指定了两个变量的话,是会出现问题的。

【Python技巧】——几种遍历_第10张图片

3个元素,取4个(>3) (会报错)

元组中有3个元素,然而遍历时却指定超过元组元素数量的个数的变量,这里为4个。同样会触发ValueError报错
【Python技巧】——几种遍历_第11张图片

zip()函数遍历多个数组

使用zip()函数可以遍历多个数组

arr1 = [1, 2, 3, 4, 5]
arr2 = ['a', 'b', 'c', 'd', 'e']
arr3 = ['一','二','三','四','五']
for a, b, c in zip(arr1, arr2, arr3):
    print(a, b, c)

【Python技巧】——几种遍历_第12张图片
但是需要注意的是,zip()里面有多少个数组,for后面就需要有多少个变量去接收遍历的值

zip()遍历会匹配最短的数组,即是短板效应

这与R语言的会自动耦合遍历不同,zip()也就是遍历到最短的就停止

arr1 = [1, 2, 3, 4, 5]
arr2 = ['a', 'b', 'c', 'd', 'e']
arr3 = ['一','二','三','四']
for a, b, c in zip(arr1, arr2, arr3):
    print(a, b, c)

参考博客
https://haicoder.net/python/python-list-walk.html
https://blog.csdn.net/qq_42751978/article/details/129791051

你可能感兴趣的:(python,python,开发语言)