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 メンバーシップ
>>> p = 'write'
>>> p
True
>>> ユーザー =["a"," b", "c"]
>>> raw_input('Enter:') in user
Enter:aTrue
>>>数値 = [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.append(4)
>>> lst
[1, 2,3,4]
注: append メソッドは、変更された新しいリストを単に返すのではなく、元のリストを直接変更します。
3.2.2 count
count メソッドは、リスト内に要素が出現する回数をカウントします。
>> ;> x.count(1)
3.2.3 extendextend メソッドは、リストの最後に別のシーケンスから複数の値を一度に追加できます。
注: extend メソッドと接続操作 (+) の主な違いは、extend メソッドは拡張シーケンスを変更するのに対し、接続操作は新しいリストを返すことです。
3.2.4 Index
index メソッドは、リストから最初に一致する値のインデックス位置を見つけるために使用されます:
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.pop()
3
>>> リスト内の値の最初の一致を削除するために使用されます:
コードをコピー
コードは次のとおりです:
reverse メソッドはリスト内の要素を逆順に保存します。
コードをコピー
コードは次のとおりです。 :
> x = [1,2,3]
>>x.reverse()
>>
,2 ,1]
コードをコピー
コードは次のとおりです:
> x = [4,2,7,1]
>>
> y = x[:]
> ;>> y.sort ()
コードは次のとおりです:
>>> x = [4,5,3,7,2]
>>> y = ソート(x)
>>> ,3,7,2]
>>> y[2,3,4,5,7]
3.2.10 高度な並べ替え
>>> 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 タプル関数
タプルはシーケンスをパラメータとして受け取り、それをタプルに変換します。パラメータがタプルの場合、パラメータは変更されずに返されます:
>>> 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) タプルは多くの組み込み関数やメソッドの戻り値として存在します。

ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

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

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

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

ホットトピック











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

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

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

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

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

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

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

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