検索

この章ではデータ構造の概念を紹介します。データ構造は、何らかの方法でまとめられたデータ要素のコレクションです。 Python では、最も基本的なデータ構造はシーケンスです。シーケンス内の各要素にはシーケンス番号が割り当てられます。シーケンス番号は要素の位置であり、インデックスとも呼ばれます。注: 最初のインデックスは 0 です。
1. シーケンスの概要
Python には、リスト、タプル、文字列、Unicode 文字列、バッファ オブジェクト、xrange オブジェクトの 6 つの組み込みシーケンスがあります。
ここではリストとタプルに焦点を当てます。リストとタプルの主な違いは、リストは変更できるが、タプルは変更できないことです。一般に、リストはほとんどすべての状況でタプルを置き換えることができます。
シーケンスは、一連の値を操作する必要がある場合に非常に便利です:

コードをコピーします コードは次のとおりです:

Edward = ["Gumby",42]

同時に、シーケンスには他のシーケンスを含めることができます。例:
コードをコピー コードは次のとおりです:

Edward = ["Gumby",42]
John = [" Smith",50]
database = [Edward,John]

2. 共通のシーケンス操作
すべてのシーケンス タイプは、インデックス付け、シャーディングなどの特定の特徴的な操作を実行できます。 、加算、乗算、および要素がシーケンスのメンバー (メンバーシップ) であるかどうかを確認します。さらに、Python には、シーケンスの長さを計算し、最大要素と最小要素を見つけるための組み込み関数もあります。
2.1 インデックス
シーケンス内のすべての要素には、0 から始まり増加する番号が付けられます。これらの要素には、番号によって個別にアクセスできます:
コードをコピーします コードは次のとおりです:

>>> ;greeting = "hello "
>>>greeting[0]
'H'

負のインデックスを使用すると、Python は右からカウントし始めます。は、最後の要素から、そして最後の要素の位置番号は -1 です!
コードをコピー コードは次のとおりです:

>greeting[-1]
' g'

2.2 シャーディング
シャーディングは、コロンで区切られた 2 つのインデックスによって実装される、特定の範囲内の要素にアクセスできます。スライスはシーケンスの一部を抽出する場合に便利です。最初のインデックスは抽出された部分の最初の要素番号であり、最後のインデックスはスライス後の残りの部分の最初の要素番号です。
コードをコピー コードは次のとおりです:

>number = [1,2,3, 4,5 ,6,7,8,9,10]
>>> 数値[3:6]
[4,5,6]
>>>> 0:1 ]
[1]

2.2.1 エレガントなショートカット
は最後の 3 つの要素にアクセスする必要があります。これは次のように明示的に行うことができます:
コードをコピーします コードは次のとおりです:

>number[7:10]
[8,9,10] ]

ここでインデックス 10 が指す 11 番目の要素は存在しませんが、最後の要素の後にあります。
リストの最後から数え始める必要がある場合、つまり、シャード部分にシーケンスの最後の要素が含まれている場合は、最後のインデックスを空白のままにしておきます:
コードをコピー コードは次のとおりです:

>number[-3:]
[8,9,10]

このメソッドはシーケンスの先頭の要素、またはシーケンス全体を表示します:
コードをコピー コードは次のとおりです。 :

>>> 数値[:3]
[1,2,3]
>数値[:]
[1, 2,3,4,5,6,7,8,9,10]

2.2.2 より大きなステップ サイズ
シャーディングの場合、シャーディングの開始と終了を指定する必要があります別のパラメータであるステップ サイズは、通常、暗黙的に設定されます。デフォルトのステップ サイズは 1 です。ステップ サイズを 1 より大きい数値に明示的に設定すると、一部の要素がスキップされます。
コードをコピーします コードは次のとおりです:

>number[0:10:2]
[ 1,3,5,7,9]
>>>number[3:6:3]
[4]

ステップ サイズは変更できません0 ですが、負の数も可能です。つまり、要素は右から左に抽出されます:
コードをコピー コードは次のとおりです:

> 数値 [10:0:-2]
[10,8,6,4,2]
> 数値[0:10: -2]
[]

上記の 2 番目の式は間違っています。ステップ サイズとして負の数値を使用する場合、開始点は終了点より大きくなければなりません。
2.3 シーケンスの追加
シーケンスの接続操作はプラス記号を使用して実行できます:
コードをコピー コードは次のとおりです:

>>> [1,2,3] + [4,5,6]
[1,2,3,4,5,6]
>> >' こんにちは、' + 'world'
'hello, world'
>>>[1,2,3] + 'hello'
TypeError: リストのみ連結できます (' ではありません)文字列') をリストに追加

上記の 3 番目の例に示すように、リストと文字列は両方ともシーケンスですが、接続できるのは同じタイプの 2 つのシーケンスのみです。
コードをコピー コードは次のとおりです。

2.4 乗算
シーケンスに数値 x を乗算すると、新しいシーケンス、新しいシーケンスでは、元のシーケンスが x 回繰り返されます:
[code]
>>> 'python' *5
'pythonpythonpythonpythonpython'
>>> ; [ 42] * 5
[42,42,42,42,42]

なし、空のリストと初期化
空のリストは 2 つの角括弧 ([ ]) ですが、10 個の要素を占めるが有用なコンテンツを含まないリストを作成したい場合は、null 値を表す値が必要です。
となります。 コードをコピー コードは次のとおりです:

> シーケンス = [なし] * 10
>

シーケンス [なし,なし,なし,なし,なし,なし,なし,なし,なし,なし]


2.5 メンバーシップ
値がシーケンス内にあるかどうかを確認するには、次を使用できます。 in 演算子。特定の条件が true であるかどうかを確認し、対応する値 (True または False) を返します。 コードをコピー
コードは次のとおりです:


>>> p = 'write'
>>> p
True
>>> ユーザー =["a"," b", "c"]
>>> raw_input('Enter:') in user
Enter:aTrue

2.6 の長さ、最大および最小値 コードをコピー
コードは次のとおりです:


>>>数値 = [10,20,30] ]
>>> len(数字)
>>> 最大(数字) (1,99)
>>> min(1,99)

上記の最後の 2 つの例では、max 関数と min 関数のパラメーターはシーケンスではありません。ただし、複数の数値をパラメータとして直接使用できます。
3. リスト: Python の "coolie"
3.1 リスト関数
文字列はリストのように変更できないため、文字列に基づいてリストを作成すると便利な場合があります。 ps: list 関数は、文字列だけでなく、あらゆる種類のリストに対して機能します。
コードをコピーします コードは次のとおりです:

>>> list('hello')
['h ','e','l','l','o']

ヒント: 次の式を使用して、文字のリストを文字列に変換できます:
コードをコピー コードは次のとおりです:

> strs = ' '.jion(list)>> ;> strs
"h e l l o"

3.2 基本的なリスト操作
メソッドは、特定のオブジェクトに密接に関連する関数です。または文字列または他のタイプのオブジェクト。リストには、その内容を検査または変更するためのいくつかの方法が用意されています。
3.2.1 append
append メソッドは、リストの最後に新しいオブジェクトを追加するために使用されます:

コードをコピー コードは次のとおりです。
>>> lst = [1,2,3]
>>> lst.append(4)
>>> lst
[1, 2,3,4]

注: append メソッドは、変更された新しいリストを単に返すのではなく、元のリストを直接変更します。

3.2.2 count
count メソッドは、リスト内に要素が出現する回数をカウントします。

コードをコピー コードは次のとおりです:
> x =[[1,2],1,1,[1,2,[1,2]]]
>> ;> x.count(1)


3.2.3 extendextend メソッドは、リストの最後に別のシーケンスから複数の値を一度に追加できます。
注: extend メソッドと接続操作 (+) の主な違いは、extend メソッドは拡張シーケンスを変更するのに対し、接続操作は新しいリストを返すことです。

3.2.4 Index
index メソッドは、リストから最初に一致する値のインデックス位置を見つけるために使用されます:


コードをコピーコードは次のとおりです:>>> knights = ['we','are','the','knights']
>> ;> knights.index('the')
2
>>> knights.index("hi")
ValueError:list.index(x):x がリストにありません


一致するものが見つからない場合、例外がスローされます。
3.2.5 insert
insert メソッドは、オブジェクトをリストに挿入するために使用されます:


コードをコピー コードは次のとおりです。 :

>>> 数値 = [1,2,3,6]
>>> 数値 = insert(3,5)
>>>
[1,2,3,5,6]
>>> 数値[3:3] = [4]
>>> 数値
[1,2] ,3,4,5,6]

上記の最後の例では、挿入はスライスの割り当てによって実装されていますが、可読性は挿入ほど良くありません。

3.2.6 Pop
pop メソッドは、リストから要素を削除し、要素の値を戻します。これは、リストを変更し、要素の値を返すことができる唯一のリスト メソッドです。 🎜>
コードをコピーします コードは次のとおりです:
> x = [1,2,3]
> ;>> x.pop()
3
>>> リスト内の値の最初の一致を削除するために使用されます:


コードをコピー

コードは次のとおりです:
>> x = ['to','be','to']> >> x.remove('to')>>> 'be','to']>>> という値が最初に出現することがわかります。削除され、リストにない値は削除されません。
3.2.8 reverse
reverse メソッドはリスト内の要素を逆順に保存します。



コードをコピー

コードは次のとおりです。 :

> x = [1,2,3]
>>x.reverse()
>>
,2 ,1]
3.2.9 sortsort メソッドは、リストを元の位置でソートするために使用されます。これは、単純にソートされたリストのコピーを返すのではなく、元のリストを変更することを意味します。 元の値を変更せずに並べ替えを行いたい場合は、最初に値を割り当ててから並べ替える必要があります:


コードをコピー

コードは次のとおりです:

> x = [4,2,7,1]
>>
> y = x[:]
> ;>> y.sort ()
>>> 🎜>注: 上記の例では、シャーディングは y=x[:] を使用する非常に効率的な方法です。リスト全体。単純に x を y に代入する (y=x) という方法はありません。そうすると、x と y が同じリストを指すことになるからです。 ソートされたリストのコピーを取得する別の方法は、sorted 関数を使用することです:
コードをコピーします

コードは次のとおりです:


>>> x = [4,5,3,7,2]
>>> y = ソート(x)
>>> ,3,7,2]
>>> y[2,3,4,5,7]


3.2.10 高度な並べ替え
If If要素を特定の方法で並べ替えたい場合は、compare(x,y) の形式で比較関数をカスタマイズできます。組み込みの cmp 関数は、比較関数のデフォルトの実装を提供します: コードをコピーします
コードは次のとおりです:


>>> cmp(1,2)
>>> cmp(2,1)
>>> >>>> ; 数字 = [5,3,9,7]
>>> 数字.sort(cmp)
>>> 数字 ,7,9]


sort メソッドには、key と reverse という 2 つの追加のオプション パラメータがあります。これらを使用するには、名前で指定します。
コードをコピー コードは次のとおりです。


>>> x = ['a','abc; ',' ab']
>>> x.sort(key=len)
>>> = [2,4,1,5]>>> y.sort(reverse)
>>> y
[5,4,2 ,1]


4. タプル: Immutable Sequence
タプルを作成するための構文は単純です。いくつかの値をカンマで区切ると、タプル グループが自動的に作成されます。
コードをコピー コードは次のとおりです:

>>>1,2,3
( 1,2 ,3)
>>>(1,2,3)
(1,2,3)
>>>()
()
> >>42,
(42,)

上記の最後の例のように、値を含むタプルを実装する場合は、価値。
4.1 タプル関数
タプルはシーケンスをパラメータとして受け取り、それをタプルに変換します。パラメータがタプルの場合、パラメータは変更されずに返されます:
Copyコード コードは次のとおりです:

>>> tuple([1,2,3])
(1,2,3)
>>> タプル('abc')
('a','b','c')
>>> タプル((1,2,3)) 🎜>( 1,2,3)


4.2 基本的なタプル操作
タプルの作成とタプル要素へのアクセスを除けば、実際には複雑な操作はありません。
コードのコピー コードは次のとおりです:

>>>x = 1,2,3
>>>x[1]
2
>>>

4.3 では、どのような重要性があるのでしょうか? タプルは置き換えられません:
(1) タプルはマップのキーとして使用できますが、リストは使用できません。
(2) タプルは多くの組み込み関数やメソッドの戻り値として存在します。


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

Pythonの柔軟性は、マルチパラダイムサポートと動的タイプシステムに反映されていますが、使いやすさはシンプルな構文とリッチ標準ライブラリに由来しています。 1。柔軟性:オブジェクト指向、機能的および手続き的プログラミングをサポートし、動的タイプシステムは開発効率を向上させます。 2。使いやすさ:文法は自然言語に近く、標準的なライブラリは幅広い機能をカバーし、開発プロセスを簡素化します。

Python:汎用性の高いプログラミングの力Python:汎用性の高いプログラミングの力Apr 17, 2025 am 12:09 AM

Pythonは、初心者から上級開発者までのすべてのニーズに適した、そのシンプルさとパワーに非常に好まれています。その汎用性は、次のことに反映されています。1)学習と使用が簡単、シンプルな構文。 2)Numpy、Pandasなどの豊富なライブラリとフレームワーク。 3)さまざまなオペレーティングシステムで実行できるクロスプラットフォームサポート。 4)作業効率を向上させるためのスクリプトおよび自動化タスクに適しています。

1日2時間でPythonを学ぶ:実用的なガイド1日2時間でPythonを学ぶ:実用的なガイドApr 17, 2025 am 12:05 AM

はい、1日2時間でPythonを学びます。 1.合理的な学習計画を作成します。2。適切な学習リソースを選択します。3。実践を通じて学んだ知識を統合します。これらの手順は、短時間でPythonをマスターするのに役立ちます。

Python vs. C:開発者の長所と短所Python vs. C:開発者の長所と短所Apr 17, 2025 am 12:04 AM

Pythonは迅速な開発とデータ処理に適していますが、Cは高性能および基礎となる制御に適しています。 1)Pythonは、簡潔な構文を備えた使いやすく、データサイエンスやWeb開発に適しています。 2)Cは高性能で正確な制御を持ち、ゲームやシステムのプログラミングでよく使用されます。

Python:時間のコミットメントと学習ペースPython:時間のコミットメントと学習ペースApr 17, 2025 am 12:03 AM

Pythonを学ぶのに必要な時間は、人によって異なり、主に以前のプログラミングの経験、学習の動機付け、学習リソースと方法、学習リズムの影響を受けます。現実的な学習目標を設定し、実用的なプロジェクトを通じて最善を尽くします。

Python:自動化、スクリプト、およびタスク管理Python:自動化、スクリプト、およびタスク管理Apr 16, 2025 am 12:14 AM

Pythonは、自動化、スクリプト、およびタスク管理に優れています。 1)自動化:OSやShutilなどの標準ライブラリを介してファイルバックアップが実現されます。 2)スクリプトの書き込み:Psutilライブラリを使用してシステムリソースを監視します。 3)タスク管理:スケジュールライブラリを使用してタスクをスケジュールします。 Pythonの使いやすさと豊富なライブラリサポートにより、これらの分野で優先ツールになります。

Pythonと時間:勉強時間を最大限に活用するPythonと時間:勉強時間を最大限に活用するApr 14, 2025 am 12:02 AM

限られた時間でPythonの学習効率を最大化するには、PythonのDateTime、時間、およびスケジュールモジュールを使用できます。 1. DateTimeモジュールは、学習時間を記録および計画するために使用されます。 2。時間モジュールは、勉強と休息の時間を設定するのに役立ちます。 3.スケジュールモジュールは、毎週の学習タスクを自動的に配置します。

Python:ゲーム、GUIなどPython:ゲーム、GUIなどApr 13, 2025 am 12:14 AM

PythonはゲームとGUI開発に優れています。 1)ゲーム開発は、2Dゲームの作成に適した図面、オーディオ、その他の機能を提供し、Pygameを使用します。 2)GUI開発は、TKINTERまたはPYQTを選択できます。 TKINTERはシンプルで使いやすく、PYQTは豊富な機能を備えており、専門能力開発に適しています。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。