Pythonのリストとセットの違い

尚
オリジナル
2019-07-05 11:00:306323ブラウズ

Pythonのリストとセットの違い

list:

文字通りコレクションを意味します。Python では、リスト内の要素は角括弧 [] で表されます。リストは次のように定義できます:

L = [12, 'China', 19.998]

要素の型が同じである必要はないことがわかります。もちろん、空のリストを定義することもできます。

L = []

Python のリストは順序付けされているため、リストにアクセスしたい場合は、明らかに、リストの添え字と同様に、シリアル番号を使用してアクセスする必要があります。配列の場合、添字と同じです。0 から始まります。

>>> print L[0]12

境界を越えないでください。そうでない場合は、エラーが報告されます。

>>> print L[3]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

List には、逆の順序でアクセスすることもできます。シリアル番号は、-1 などの「下から x 番目」のような添え字で表されます。この添え字は最後から 2 番目の要素を表します。

>>> L = [12, &#39;China&#39;, 19.998]
>>> print L[-1]19.998

-4 は、次のように明らかに範囲外です。

>>> print L[-4]

Traceback (most recent call last):
  File "<pyshell#2>", line 1, in <module>
    print L[-4]
IndexError: list index out of range
>>>

List は組み込みの append() メソッドを使用して末尾に追加され、insert() メソッドは指定された位置に追加されます (添字は 0 から始まります):

>>> L = [12, &#39;China&#39;, 19.998]
>>> L.append('Jack')
>>> print L
[12, 'China', 19.998, 'Jack']
>>> L.insert(1, 3.14)
>>> print L
[12, 3.14, 'China', 19.998, 'Jack']
>>>

Python には append に似たメソッドがいくつかありますが、効果はまったく異なります。これらを使用する場合は、実際のニーズに応じて正しいメソッドを選択する必要があります

1. append() 新しい要素を追加します。リストの末尾 リストは 1 つのインデックス位置のみを占有し、それを元のリストに追加します

2. extend() リストをリストの末尾に追加し、リスト内の要素を末尾に追加しますリストの各要素が追加され、

が元のリストに追加されます。たとえば、list1=[1, 2, 3] .list2=[4, 5, 6]

list1.append(list2 ) 結果は [1, 2, 3, [4, 5, 6]]

list1.extend(list2) の結果は [1, 2, 3, 4] , 5, 6]

3. 数値を直接使用すると、extend() を使用するのと同じ効果があるように見えますが、実際には 2 つのリストの合計を保存する新しいリストが生成されます。 2 つのリストを追加します。

4. = 効果は extend() と同じです。元のリストに新しい要素を追加し、それを元のリストに追加します。

を削除します。 Pop() を介して最後の末尾の要素を指定することもできます。パラメータを指定して、指定した位置を削除することもできます:

>>> L.pop()
&#39;Jack&#39;
>>> print L
[12, 3.14, &#39;China&#39;, 19.998]
>>> L.pop(0)
>>> print L
[3.14, &#39;China&#39;, 19.998]

添字を使用してコピーして置換することもできます

>>> L[1] = &#39;America&#39;
>>> print L
[3.14, &#39;America&#39;, 19.998]

set:

set は番号のセットでもあり、順序付けられておらず、内容を繰り返すことはできません。 set( ) メソッドを呼び出すことによって作成されます:

>>> s = set([&#39;A&#39;, &#39;B&#39;, &#39;C&#39;])

セットにアクセスする意味は、要素が含まれているかどうかを確認することだけです。大文字と小文字の区別に注意してください:

>>> print &#39;A&#39; in s
True
>>> print &#39;D&#39; in s
False

また、次の場合もトラバースします:

s = set([(&#39;Adam&#39;, 95), (&#39;Lisa&#39;, 85), (&#39;Bart&#39;, 59)])

for x in s:
    print x[0],&#39;:&#39;,x[1]

>>>
Lisa : 85
Adam : 95
Bart : 59

add と delete を使用して要素を追加および削除します (反復しないようにします)。要素を追加するときは、 set の add() メソッド

>>> s = set([1, 2, 3])
>>> s.add(4)
>>> print s
set([1, 2, 3, 4])

追加された要素がセット内にすでに存在する場合、add() はエラーを報告しませんが、追加されません:

>>> s = set([1, 2, 3])
>>> s.add(3)
>>> print s
set([1, 2, 3])

内の要素を削除するときセットを削除するには、セットのremove()メソッドを使用します:

>>> s = set([1, 2, 3, 4])
>>> s.remove(4)
>>> print s
set([1, 2, 3])

削除された要素がセットに存在しない場合、remove()はエラーを報告します:

>>> s = set([1, 2, 3])
>>> s.remove(4)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 4

So要素がいくつかの異なる条件を満たすかどうかを判断したい場合は、set を使用するのが最良の選択です (例:

months = set([&#39;Jan&#39;,&#39;Feb&#39;,&#39;Mar&#39;,&#39;Apr&#39;,&#39;May&#39;,&#39;Jun&#39;,&#39;Jul&#39;,&#39;Aug&#39;,&#39;Sep&#39;,&#39;Oct&#39;,&#39;Nov&#39;,&#39;Dec&#39;,])
x1 = &#39;Feb&#39;
x2 = &#39;Sun&#39;

if x1 in months:
    print &#39;x1: ok&#39;
else:
    print &#39;x1: error&#39;

if x2 in months:
    print &#39;x2: ok&#39;
else:
    print &#39;x2: error&#39;

>>>
x1: ok
x2: error

) また、set の方が list よりも計算効率が高くなります。

Python 関連の技術記事の詳細については、Python チュートリアル 列にアクセスして学習してください。

以上がPythonのリストとセットの違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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