Python でのデータ構造とアルゴリズムの適用 (例付き)

不言
リリース: 2018-12-07 17:33:19
転載
3477 人が閲覧しました

この記事で紹介する内容は、Python でのデータ構造とアルゴリズムの適用に関するものです (例付き)。一定の参考価値があります。困っている友人が参考にしていただければ幸いです。あなたにとって役に立ちます。

質問 1

N 個の要素を含むタプルまたはシーケンスがあります。その中の値を解凍して代入する方法N 個の変数を与えますか?

解決策

任意のシーケンス (反復可能なオブジェクト) を展開し、単純な代入ステートメントを使用して複数の変数に割り当てることができます。前提条件は、変数の数とシーケンス要素の数が一致している必要があるということです。

In [3]: p = (4,5)

In [4]: x,y = p

In [5]: x
Out[5]: 4

In [6]: y
Out[6]: 5

In [7]: data = ['ACME', 50, 91.1, (2012, 12, 21)]

In [8]: name, shares, price, date = data

In [9]: name
Out[9]: 'ACME'

In [10]: shares
Out[10]: 50

In [11]: date
Out[11]: (2012, 12, 21)
ログイン後にコピー

変数の数とシーケンスの要素の数が一致しない場合、例外が生成されます。

In [12]: p = (x,5)

In [13]: a,b,c = p
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-13-f5a6e296606a> in <module>()
----> 1 a,b,c = p

ValueError: not enough values to unpack (expected 3, got 2)
ログイン後にコピー

このアンパック割り当ては、リストやタプルだけでなく、文字列、ファイル オブジェクト、イテレータ、ジェネレータなど、あらゆる反復可能なオブジェクトで使用できます。

In [14]: A = 'hello'

In [15]: a,b,c,d,e = A

In [16]: a
Out[16]: 'h'

In [17]: b
Out[17]: 'e'

In [18]: c
Out[18]: 'l'

In [19]: d
Out[19]: 'l'

In [20]: e
Out[20]: 'o'

In [21]: a,b,c,d,e
Out[21]: ('h', 'e', 'l', 'l', 'o')
ログイン後にコピー

シーケンスの一部だけを解凍して値の一部を破棄したい場合は、不要な変数名を使用してシーケンス要素の対応する位置を占有するだけです。

In [22]: data = [ 'ACME', 50, 91.1, (2012, 12, 21) ]

In [23]: _, shares, price, _ = data

In [24]: shares
Out[24]: 50

In [25]: price
Out[25]: 91.1
ログイン後にコピー

質問 2

反復可能なオブジェクトの要素の数が変数の数を超える場合、ValueError がスローされます。では、この反復可能なオブジェクトから N 個の要素を抽出するにはどうすればよいでしょうか?

解決策

Python のアスタリスク式は、この問題を解決できます。たとえば、コースを勉強していて、学期の終わりに、最初と最後の成績を除き、宿題の平均成績を計算したいとします。分数が 4 つしかない場合は、そのまま手動で割り当てても構いませんが、24 個あった場合はどうなるでしょうか。このとき、アスタリスク式が役に立ちます。
関数呼び出しでは、マッチングは単に変数名の位置に基づいて行われますが、name=value を使用すると、変数名に従ってマッチングするよう Python に指示されます。これらはキーワードパラメータと呼ばれます。呼び出しで *sequence または **dict を使用すると、任意の数の位置関連オブジェクトまたはキーワード オブジェクトをシーケンスまたは辞書にカプセル化し、それらを関数、unpack に渡すことができます。それらを個別の単一パラメータに分割します。

えええええ

以上がPython でのデータ構造とアルゴリズムの適用 (例付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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