ホームページ バックエンド開発 Python チュートリアル Python のリストとタプルの詳細な例

Python のリストとタプルの詳細な例

Jun 16, 2016 am 08:46 AM
python

この章ではデータ構造の概念を紹介します。データ構造は、何らかの方法でまとめられたデータ要素のコレクションです。 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 までご連絡ください。

ホット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ヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

画像に変換されたXMLのサイズを制御する方法は? 画像に変換されたXMLのサイズを制御する方法は? Apr 02, 2025 pm 07:24 PM

XMLを介して画像を生成するには、XMLのメタデータ(サイズ、色)に基づいて画像を生成するために、ブリッジとしてグラフライブラリ(枕やJFreechartなど)を使用する必要があります。画像のサイズを制御するための鍵は、< width>の値を調整することです。および< height> XMLのタグ。ただし、実際のアプリケーションでは、XML構造の複雑さ、グラフ描画の細かさ、画像生成の速度とメモリ消費の速度、および画像形式の選択はすべて、生成された画像サイズに影響を与えます。したがって、グラフィックライブラリに熟練したXML構造を深く理解し、最適化アルゴリズムや画像形式の選択などの要因を考慮する必要があります。

XMLをPDFに変換できるモバイルアプリはありますか? XMLをPDFに変換できるモバイルアプリはありますか? Apr 02, 2025 pm 08:54 PM

XMLをPDFに直接変換するアプリケーションは、2つの根本的に異なる形式であるため、見つかりません。 XMLはデータの保存に使用され、PDFはドキュメントを表示するために使用されます。変換を完了するには、PythonやReportLabなどのプログラミング言語とライブラリを使用して、XMLデータを解析してPDFドキュメントを生成できます。

携帯電話でXMLをPDFに変換するとき、変換速度は高速ですか? 携帯電話でXMLをPDFに変換するとき、変換速度は高速ですか? Apr 02, 2025 pm 10:09 PM

Mobile XMLからPDFへの速度は、次の要因に依存します。XML構造の複雑さです。モバイルハードウェア構成変換方法(ライブラリ、アルゴリズム)コードの品質最適化方法(効率的なライブラリ、アルゴリズムの最適化、キャッシュデータ、およびマルチスレッドの利用)。全体として、絶対的な答えはなく、特定の状況に従って最適化する必要があります。

携帯電話のXMLファイルをPDFに変換する方法は? 携帯電話のXMLファイルをPDFに変換する方法は? Apr 02, 2025 pm 10:12 PM

単一のアプリケーションで携帯電話でXMLからPDF変換を直接完了することは不可能です。クラウドサービスを使用する必要があります。クラウドサービスは、2つのステップで達成できます。1。XMLをクラウド内のPDFに変換し、2。携帯電話の変換されたPDFファイルにアクセスまたはダウンロードします。

XMLをPDFに変換できるモバイルアプリはありますか? XMLをPDFに変換できるモバイルアプリはありますか? Apr 02, 2025 pm 09:45 PM

XML構造が柔軟で多様であるため、すべてのXMLファイルをPDFSに変換できるアプリはありません。 XMLのPDFへのコアは、データ構造をページレイアウトに変換することです。これには、XMLの解析とPDFの生成が必要です。一般的な方法には、ElementTreeなどのPythonライブラリを使用してXMLを解析し、ReportLabライブラリを使用してPDFを生成することが含まれます。複雑なXMLの場合、XSLT変換構造を使用する必要がある場合があります。パフォーマンスを最適化するときは、マルチスレッドまたはマルチプロセスの使用を検討し、適切なライブラリを選択します。

C言語合計の機能は何ですか? C言語合計の機能は何ですか? Apr 03, 2025 pm 02:21 PM

C言語に組み込みの合計機能はないため、自分で書く必要があります。合計は、配列を通過して要素を蓄積することで達成できます。ループバージョン:合計は、ループとアレイの長さを使用して計算されます。ポインターバージョン:ポインターを使用してアレイ要素を指し示し、効率的な合計が自己概要ポインターを通じて達成されます。アレイバージョンを動的に割り当てます:[アレイ]を動的に割り当ててメモリを自分で管理し、メモリの漏れを防ぐために割り当てられたメモリが解放されます。

画像へのXML変換の品質を評価する方法は? 画像へのXML変換の品質を評価する方法は? Apr 02, 2025 pm 07:33 PM

写真に対するXMLの品質評価には、多くの指標が含まれます。視覚的忠実度:写真はXMLデータ、マニュアルまたはアルゴリズムの評価を正確に反映しています。データの整合性:画像には、必要なすべての情報、自動テスト検証が含まれています。ファイルサイズ:画像は合理的で、読み込み速度と詳細に影響します。レンダリング速度:アルゴリズムとハードウェアに応じて、画像は迅速に生成されます。エラー処理:プログラムは、XML形式のエラーとデータが欠落しているエレガントに扱います。

XMLでノードコンテンツを変更する方法 XMLでノードコンテンツを変更する方法 Apr 02, 2025 pm 07:21 PM

XMLノードコンテンツの変更スキル:1。ElementTreeモジュールを使用して、ノード(findall()、find())を見つけます。 2。テキスト属性を変更します。 3. Xpath式を使用して、それらを正確に見つけます。 4。エンコード、名前空間、例外処理を検討します。 5。パフォーマンスの最適化に注意してください(繰り返しのトラバーサルを避けてください)

See all articles