ホームページ  >  記事  >  バックエンド開発  >  Lao Qi から Python を学ぶ方法のリスト (2)

Lao Qi から Python を学ぶ方法のリスト (2)

WBOY
WBOYオリジナル
2016-06-16 08:41:591045ブラウズ

リスト上の操作

リストを結合

「The Tolerant List (1)」では、list.append(x) がリストの操作、つまり既知のリストの後ろに特定の要素 x を追加する操作について言及されています。

リストに要素を追加するだけでなく、2 つのリストを結合したり、あるリストを別のリストに追加したりすることもできます。前回の規則に従って、まず公式ドキュメントの説明を読んでみましょう:

リスト.extend(L)
指定されたリスト内のすべての項目を追加してリストを拡張します。a[len(a):] = L.
と同等です。 このコンテンツを学習しているすべての友人に、優れたプログラマになるための必需品を提供するには、公式ドキュメントを読むことが必須です。

公式文書のこの文を翻訳すると次のようになります:

すべての要素を既知のリストに追加することで展開します (a[len(a)]= L と同等)
英語もひどいし、翻訳もひどい。よりよく理解するには、例を見てください

>>> la
[1, 2, 3]
>>> lb
['qiwsir', 'python']
>>> la.extend(lb)
>>> la
[1, 2, 3, 'qiwsir', 'python']
>>> lb
['qiwsir', 'python']

上の例は、2 つのリスト (1 つは la で、もう 1 つは lb) を追加し、la の後ろに lb を追加する方法を示しています。つまり、lb 内のすべての要素を la に追加します。つまり、la を展開します。

インタラクティブな環境でプログラミングを学ぶとき、私は自分のアイデア (時には愚かなアイデア) を試してみることがよくあります。

>>> la = [1,2,3]
>>> b = "abc"
>>> la.extend(b)
>>> la
[1, 2, 3, 'a', 'b', 'c']
>>> c = 5
>>> la.extend(c)
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable

上記の実験から、読者は何を得ることができますか? extend(str)を使うとstrが文字単位に分割されてlaに追加されることが分かりました。

拡張オブジェクトが数値型の場合、エラーが報告されます。

つまり、extend のオブジェクトが str の場合、Python はまずそれを文字単位のリストに変換してから、既知のリストに追加します。

ただし、前の公式文書の後半を忘れないでください。意味は次のとおりです。

>>> la
[1, 2, 3, 'a', 'b', 'c']
>>> lb
['qiwsir', 'python']
>>> la[len(la):]=lb
>>> la
[1, 2, 3, 'a', 'b', 'c', 'qiwsir', 'python']

list.extend(L) は list[len(list):] = L と同等です。L はマージされるリストです

リストの長さ

str の長さを取得する方法を覚えていますか?その長さはどれくらいですか?そのメソッドはリストでも使用できますか?どれくらい効果があるのでしょうか?

実験を行う:

>>> name = 'qiwsir'
>>> type(name)
<type 'str'>
>>> len(name)
6
>>> lname = ['sir','qi']
>>> type(lname)
<type 'list'>
>>> len(lname)
2
>>> length = len(lname)
>>> length
2
>>> type(length)
<type 'int'>

実験の結論:

len(x)、リストにも適用可能
取得されるのはリスト内の要素の数です
戻り値の型は int
リスト内の要素の数

上記の len(L) はリストの長さ、つまりリストに要素がいくつあるかを取得できます。 Python のリストにはもう 1 つ、特定の要素がリスト内に何回出現するか、つまり特定の要素が何回存在するかを数える操作があります。公式ドキュメントには次のように書かれています:

リスト.カウント(x)
x がリストに出現する回数を返します。
文書内の洗練された表現を理解するには、実験を続ける必要があります。

>>> la = [1,2,1,1,3]
>>> la.count(1)
3
>>> la.append('a')
>>> la.append('a')
>>> la
[1, 2, 1, 1, 3, 'a', 'a']
>>> la.count('a')
2
>>> la.count(2)
1
>>> la.count(5)   #NOTE:la中没有5,但是如果用这种方法找,不报错,返回的是数字0
0

リスト内の要素の位置

「許容リスト (1)」で、リスト内の要素に 0 から左から右に番号を付け、インデックスを作成できると述べました (右から左に移動する場合は、-1 から開始します)。シーケンス)、特定の要素、または特定の要素をインデックスを通じて抽出できます。これを実行するだけです:

>>> la
[1, 2, 3, 'a', 'b', 'c', 'qiwsir', 'python']
>>> la[2]
3
>>> la[2:5]
[3, 'a', 'b']
>>> la[:7]
[1, 2, 3, 'a', 'b', 'c', 'qiwsir']

逆の状況を考えると、特定の要素を通じてリスト内のその番号を見つけることができますか?

裁判官のニーズはPythonの方向性で、思い立ったらPythonで実現できます。

>>> la
[1, 2, 3, 'a', 'b', 'c', 'qiwsir', 'python']
>>> la.index(3)
2
>>> la.index('a')
3
>>> la.index(1)
0
>>> la.index('qi')   #如果不存在,就报错
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
 ValueError: 'qi' is not in list
>>> la.index('qiwsir')
6

list.index(x)、x はリスト内の要素であるため、リスト内の要素の位置を取得できます。これが本当の英単語索引に注目してください。

引き続き前の公式説明:

list.index(x)
リスト内の値が x である最初の項目のインデックスを返します。そのような項目が存在しない場合はエラーになります。
とてもわかりやすく伝えましたか?

まずはここでやめましょう。次の講義でロン・ナイダのリストを続けます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。