>  기사  >  백엔드 개발  >  Python의 반복 지식을 이해하는 데 도움이 되는 기사

Python의 반복 지식을 이해하는 데 도움이 되는 기사

Go语言进阶学习
Go语言进阶学习앞으로
2023-07-25 16:44:531737검색

1. 소개

안녕하세요 여러분, 저는 바둑 고수입니다. 리스트나 튜플이 주어지면 for 루프를 통해 리스트나 튜플을 순회할 수 있습니다. 이 순회를 반복이라고 합니다.


2. Case

Python에서는 for...in을 통해 반복이 이루어지지만, C나 Java 등 많은 언어에서는 목록의 반복이 첨자를 통해 이루어집니다.

예를 들어, Java 코드:

for (i=0; i<list.length; i++) {   
n = list[i];
}

참고:

Python의 for 루프보다 추상화 수준이 Java의 for 루프보다 높다는 것을 알 수 있습니다. 루프는 리스트나 튜플뿐만 아니라 다른 반복 가능한 객체에도 사용할 수 있습니다.

데이터 유형 목록에는 첨자가 있지만 다른 많은 데이터 유형에는 첨자가 없습니다. 그러나 반복 가능한 객체인 한 첨자가 있는지 여부에 관계없이 반복될 수 있습니다. 반복하다.

d = {&#39;a&#39;: 1, &#39;b&#39;: 2, &#39;c&#39;: 3}
 for key in d:   
   print(key)

Python의 반복 지식을 이해하는 데 도움이 되는 기사

注:

因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不一样。

默认情况下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同时迭代key和value,可以用for k, v in d.items()。

1. 字符串也是可迭代对象。

因此,也可以作用于for循环:

for ch in &#39;ABC&#39;:   
  print(ch)

Python의 반복 지식을 이해하는 데 도움이 되는 기사

所以,当使用for循环时,只要作用于一个可迭代对象,for循环就可以正常运行,而不太关心该对象究竟是list还是其他数据类型。

那么,如何判断一个对象是可迭代对象呢?方法是通过collections模块的Iterable类型判断:

from collections import Iterable
print(isinstance(&#39;abc&#39;, Iterable))  # str是否可迭代True
print(isinstance([1, 2, 3], Iterable))  # list是否可迭代True
print(isinstance(123, Iterable) ) # 整数是否可迭代False

Python의 반복 지식을 이해하는 데 도움이 되는 기사

如果要对list实现类似Java那样的下标循环怎么办?

Python内置的enumerate函数可以把一个list变成索引-元素对,这样就可以在for循环中同时迭代索引和元素本身:

for i, value in enumerate([&#39;A&#39;, &#39;B&#39;, &#39;C&#39;]):  
  print(i, value)

Python의 반복 지식을 이해하는 데 도움이 되는 기사

上面的for循环里,同时引用了两个变量,在Python里是很常见的,

比如下面的代码:

for x, y in [(1, 1), (2, 4), (3, 9)]:    
  print(x, y)

Python의 반복 지식을 이해하는 데 도움이 되는 기사

2. 迭代dict的key和value

了解了如何迭代 dict 的key和value,那么,在一个 for 循环中,能否同时迭代 key和value?答案是肯定的。

首先,看看 dict 对象的 items() 方法返回的值:

d = {&#39;Adam&#39;: 95, &#39;Lisa&#39;: 85, &#39;Bart&#39;: 59}
print(d.items())

Python의 반복 지식을 이해하는 데 도움이 되는 기사

可以看到,items() 方法把dict对象转换成了包含tuple的list,对这个list进行迭代,可以同时获得key和value:

for key, value in d.items():
    print(  key, &#39;:&#39;, value)

Python의 반복 지식을 이해하는 데 도움이 되는 기사

注:

和values() 有一个 itervalues() 类似, items() 也有一个对应的 iteritems(),iteritems() 不把dict转换成list,而是在迭代过程中不断给出 tuple。

所以, iteritems() 不占用额外的内存。


3. 요약

이 글은 Python의 기본을 바탕으로 Python 반복의 사용법을 소개합니다. 사용자 정의 데이터 유형을 포함하여 반복 가능한 모든 객체를 for 루프에서 사용할 수 있습니다. 반복 조건이 충족되는 한 for 루프를 사용할 수 있습니다. 사례 분석을 통해 두 가지 일반적인 반복 방법이 소개됩니다. 실제 운영에서 직면하는 어려움에 대한 효과적인 솔루션을 제공합니다.

위 내용은 Python의 반복 지식을 이해하는 데 도움이 되는 기사의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 Go语言进阶学习에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제