Pythonはリスト構造内の値の重複を排除します
今日問題が発生し、同僚からの何気ないプロンプトの後、 itertools.groupby 関数を使用しました。しかし、これは結局役に立たなかった。
問題は、リスト内のニュース ID を重複排除した後、順序を変更しない必要があることです。
直感的な方法
最も単純なアイデアは次のとおりです:
ids = [1,2,3,3,4,2,3,4,5,6,1] news_ids = [] for id in ids: if id not in news_ids: news_ids.append(id) print news_ids
これも可能ですが、見た目が十分にクールではありません。
set を使用する
もう 1 つの解決策は set を使用することです:
ids = [1,4,3,3,4,2,3,4,5,6,1] ids = list(set(ids))
その結果、元の順序は維持されません。
インデックスで再度並べ替えます
最終的にこの方法で解決しました:
ids = [1,4,3,3,4,2,3,4,5,6,1] news_ids = list(set(ids)) news_ids.sort(ids.index)
リストの順序を考慮しない場合は、itertools.groubyを使用してください
記事の冒頭でitertools.groubyについて言及しています、これを使用できます:
ids = [1,4,3,3,4,2,3,4,5,6,1] ids.sort() it = itertools.groupby(ids) for k, g in it: print k
itertools.groupby の原理については、こちらを参照してください: http://www.php.cn/
Reduce を使用してください
Netizen realk がメッセージを残しました別の解決策のために。ここに追加して説明します:
In [5]: ids = [1,4,3,3,4,2,3,4,5,6,1] In [6]: func = lambda x,y:x if y in x else x + [y] In [7]: reduce(func, [[], ] + ids) Out[7]: [1, 4, 3, 2, 5, 6]
上記は ipython で実行するコードです。 ここで、 lambda x,y:x if y in x else x + [y] は lambda x ,y と同等です。 : x および x または x+[y] 内の y。
実際には、最初に ID を [[]、1、4、3、...] に変更してから、reduce 機能を使用するというアイデアです。 Reduce の説明については、こちらを参照してください: http://docs.python.org/2/library/functions.html#reduce
リスト構造内の値の Python 重複排除の詳細については、次の点に注意してください。 PHP中国語ウェブサイトです!

ホット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)

ホットトピック









LinuxターミナルでPythonバージョンを表示する際の許可の問題の解決策PythonターミナルでPythonバージョンを表示しようとするとき、Pythonを入力してください...

PythonのPandasライブラリを使用する場合、異なる構造を持つ2つのデータフレーム間で列全体をコピーする方法は一般的な問題です。 2つのデータがあるとします...

10時間以内にコンピューター初心者プログラミングの基本を教える方法は?コンピューター初心者にプログラミングの知識を教えるのに10時間しかない場合、何を教えることを選びますか...

fiddlereveryversings for the-middleの測定値を使用するときに検出されないようにする方法

正規表現は、プログラミングにおけるパターンマッチングとテキスト操作のための強力なツールであり、さまざまなアプリケーションにわたるテキスト処理の効率を高めます。

UvicornはどのようにしてHTTPリクエストを継続的に聞きますか? Uvicornは、ASGIに基づく軽量のWebサーバーです。そのコア機能の1つは、HTTPリクエストを聞いて続行することです...

Pythonでは、文字列を介してオブジェクトを動的に作成し、そのメソッドを呼び出す方法は?これは一般的なプログラミング要件です。特に構成または実行する必要がある場合は...

この記事では、numpy、pandas、matplotlib、scikit-learn、tensorflow、django、flask、and requestsなどの人気のあるPythonライブラリについて説明し、科学的コンピューティング、データ分析、視覚化、機械学習、Web開発、Hの使用について説明します。
