Python の反復知識を理解するのに役立つ記事

リリース: 2023-07-25 16:44:53
転載
1743 人が閲覧しました

1. はじめに

皆さんこんにちは、私はGo上級者です。リストまたはタプルが指定された場合、そのリストまたはタプルは for ループを介して走査できます。この走査は反復と呼ばれます。


#2. ケース

#Python では、反復は次のように行われます。 ... が実行され、C や Java などの多くの言語では、リストの反復処理は添え字によって実行されます。

#たとえば、Java コード: #

for (i=0; i<list.length; i++) {   
n = list[i];
}
ログイン後にコピー

# 注:


Python の for ループはリストやタプルだけでなく他の反復可能オブジェクトに対しても使用できるため、Python の for ループの抽象化レベルは Java の for ループよりも高いことがわかります。オブジェクト。

データ型リストには添字がありますが、他の多くのデータ型には添字がありません。ただし、反復可能なオブジェクトである限り、オブジェクトの有無に関係なく反復できます。

たとえば、dict は反復処理できます。

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 の使用方法を紹介します。 Python の反復。 for ループでは、カスタム データ型を含む任意の反復可能なオブジェクトを使用できます。反復条件が満たされている限り、for ループを使用できます。ケース分析を通じて、2 つの一般的な反復方法が紹介されます。実際の業務で遭遇する困難に対して効果的な解決策を提供します。

以上がPython の反復知識を理解するのに役立つ記事の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:Go语言进阶学习
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート