検索
ホームページバックエンド開発Python チュートリアル知っておくべきPythonリストの重複排除方法

前書き

リストの重複排除は、Python スクリプトを作成するときによくある問題です。ソース データがどこから来たのかに関係なく、それをリストに変換すると、期待される結果が最も一般的な最終結果ではない可能性があるためです。はリストです。重複した要素があるため、最初に重複を削除する必要があります。

Python の組み込みデータ型セットを使用する、最も簡単な方法から始めましょう。

リストのデータが次のようなものであるとします。

level_names = [
 u'Second Level',
 u'Second Level',
 u'Second Level',
 u'First Level',
 u'First Level'
]

セットの要素は繰り返すことができないため、リストをセットに変換すると、繰り返しの要素は自動的に削除されます。これが基本原則です。コードは次のとおりです:

>>> the_list = set(level_names)
>>> print(the_list)
set([u'Second Level', u'First Level'])

このメソッドの欠点は、リストに変換するときに以前のリストの順序を保存できないことです。そのような要件がない場合、この方法が最も簡単な答えだと思うかもしれません。これは非常に技術的ではありませんか? はい、リストから重複を削除するように求める一般的な面接の質問では、通常次のように書きます:

リストから重複を削除する方法を書き留めてください。 (セットは使用できません)

人々はそれが使用できないことを示しています セットされているため、時々このトリックがまだ機能しないことがあります。もちろん、それは私たちを悩ませるものではありません、私たちは他の方法を持っています。

リストを走査できることは誰もが知っており、走査できれば問題は単純になります。次に、空のリストを定義し、データを含むリストを走査し、空でない場合は再度走査するときに判定を追加します。コードは次のとおりです:

the_list = []
for level in level_names:
 if level not in the_list:
  the_list.append(level)
print(the_list)

ただし、この方法は通常の小さなリストには問題ありませんが、非常に大きなリストの場合、the_list リストが非常に大きくなり、インデックス順にリストを検索するため、判定の効率に影響し、量が増えると速度が低下するため、やりたいことができなくなります。データが大きいです。

大きなリストに出会ったらどうすればいいのかと聞きたいかもしれません。 もっと素晴らしい方法はありますか?もちろん、判断するときにリストを使用すると効率に影響するため、考えを変えてセットを使用しましょう。値を検索するときにセットで使用されるハッシュ関数があるからです。セットは順序付けされておらず、位置は固定されています。特定の要素が存在するかどうかを確認するのに 1 回しかかかりません。同じデータ条件でリストとセットの要素を検索するのに 16 分かかりました。 set を使用するのに 52 秒かかります。この比較から効果がわかります。他に言うことはありません。コードを投稿してください。 PHP中国語サイトに注目!

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

slicingapythonlistisdoneusingtheyntaxlist [start:stop:step] .hore'showitworks:1)startisthe indexofthefirstelementtoinclude.2)spotisthe indexofthefirmenttoeexclude.3)staptistheincrementbetbetinelements

Numpyアレイで実行できる一般的な操作は何ですか?Numpyアレイで実行できる一般的な操作は何ですか?May 02, 2025 am 12:09 AM

numpyallows forvariousoperationsonarrays:1)basicarithmeticlikeaddition、減算、乗算、および分割; 2)AdvancedperationssuchasmatrixMultiplication;

Pythonを使用したデータ分析では、配列はどのように使用されていますか?Pythonを使用したデータ分析では、配列はどのように使用されていますか?May 02, 2025 am 12:09 AM

Arraysinpython、特にnumpyandpandas、aresentialfordataanalysis、offeringspeedandeficiency.1)numpyarraysenable numpyarraysenable handling forlaredatasents andcomplexoperationslikemoverages.2)Pandasextendsnumpy'scapabivitieswithdataframesfortruc

リストのメモリフットプリントは、Pythonの配列のメモリフットプリントとどのように比較されますか?リストのメモリフットプリントは、Pythonの配列のメモリフットプリントとどのように比較されますか?May 02, 2025 am 12:08 AM

listsandnumpyarraysinpythonhavedifferentmemoryfootprints:listsaremoreflexiblellessmemory-efficient、whileenumpyarraysaraysareoptimizedfornumericaldata.1)listsstorereferencesto objects、with whowedaround64byteson64-bitedatigu

実行可能なPythonスクリプトを展開するとき、環境固有の構成をどのように処理しますか?実行可能なPythonスクリプトを展開するとき、環境固有の構成をどのように処理しますか?May 02, 2025 am 12:07 AM

toensurepythonscriptsbehaveCorrectlyAcrossDevelosment、staging、and Production、usetheseStrategies:1)環境variablesforsimplestetings、2)configurationfilesforcomplexsetups、and3)dynamicloadingforadaptability.eachtododododododofersuniquebentandrequiresca

Pythonアレイをどのようにスライスしますか?Pythonアレイをどのようにスライスしますか?May 01, 2025 am 12:18 AM

Pythonリストスライスの基本的な構文はリストです[start:stop:step]。 1.STARTは最初の要素インデックス、2。ストップは除外された最初の要素インデックスであり、3.ステップは要素間のステップサイズを決定します。スライスは、データを抽出するためだけでなく、リストを変更および反転させるためにも使用されます。

どのような状況で、リストは配列よりもパフォーマンスが向上しますか?どのような状況で、リストは配列よりもパフォーマンスが向上しますか?May 01, 2025 am 12:06 AM

ListSoutPerformArraysIn:1)ダイナミシジョンアンドフレーケンティオン/削除、2)ストーリングヘテロゼンダタ、および3)メモリ効率の装飾、ButmayhaveslightPerformancostsinceNASOPERATIONS。

PythonアレイをPythonリストに変換するにはどうすればよいですか?PythonアレイをPythonリストに変換するにはどうすればよいですか?May 01, 2025 am 12:05 AM

toconvertapythonarraytoalist、usetheList()constructororageneratorexpression.1)importhearraymoduleandcreateanarray.2)useList(arr)または[xforxinarr] toconvertoalistは、largedatatessを変えることを伴うものです。

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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

SublimeText3 英語版

SublimeText3 英語版

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

EditPlus 中国語クラック版

EditPlus 中国語クラック版

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

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター