谈谈python中的遍历

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谈谈python中的遍历相关的知识,希望对你有一定的参考价值。

谈谈python中的遍历
python中也有像java中的for...each...。在python中是for...in... 其实感觉差不多,不过python的规则更灵活一点,
只要是可以进行迭代的对象都能使用for...in...。那么问题来了,什么是可迭代的对象呢?可以使用collections模块的Iterable来判断。

from collections import Iterable
flag = isinstance(adc,Iterable)
print(flag)
flag = isinstance(123,Iterable)
print(flag)

list的迭代就不说了。dict也可以迭代大家没想到吧,看例子

d = {name:wang,age:20}
for key in d:
    print(key)

output:    
name
age
这是迭代key的,当然也可以迭代value的,key和value同时迭代也是可以的,不过in后面的需要改一下

d = {name:wang,age:20}
for k,v in d.items():#迭代value时是d.values
    print(k,v)

最后一个小问题,如果要对list实现类似Java那样的下标循环怎么办?
Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身。

list = [1,2,3,4]
for i,n in enumerate(list):
    print(i,n)

output:
0 1
1 2
2 3
3 4
还有个有趣的现象

list = [(1,2),(3,4),(5,6)]
for x,y in list:
    print(x,y)

output:
1,2
3,4
5,6

for x in list:
    print(x)

output:
(1,2)
(3,4)
(5,6)

python是不是很智能,不过也很容易有歧义。你要问我怎么获取每个tuple中的第一个元素,那我想说我也不会啊!

以上是关于谈谈python中的遍历的主要内容,如果未能解决你的问题,请参考以下文章

scrapy主动退出爬虫的代码片段(python3)

python中的while循环与for循环怎么样那个比较好用?

谈谈java中遍历Map的几种方法

谈谈java中遍历Map的几种方法

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

使用Kotlin中的foreach循环遍历BigInteger值