質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

4143閲覧

辞書リストであるkeyの値が重複しているものを削除するには

退会済みユーザー

退会済みユーザー

総合スコア0

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2020/06/02 04:33

編集2020/06/02 05:13

noの値が重複しているデータを削除したいのですが、以下のような方法の他にもっと簡潔に書く方法はありますか?
※no以外の値は違っていてもnoが重複している場合は削除します

python

1list = [{"no": 1, "name": "名前1"}, {"no": 2, "name": "名前2"}, {"no": 1, "name": "名前3"}, {"no": 3, "name": "名前4"}] 2 3list2 = [] 4check = [] 5for data in list: 6 if data["no"] not in check: 7 check.append(data["no"]) 8 list2.append(data)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

一例を挙げます。

python3

1no_lis = [e['no'] for e in lis] 2lis2 = [e for i, e in enumerate(lis) if e['no'] not in no_lis[0:i]]

※変数名が list だと、組み込みの list と名前が被るので lis にしています。

投稿2020/06/02 05:52

jun68ykt

総合スコア9058

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/06/02 10:30

ありがとうございます! まず理解するところから始めたいと思います!
jun68ykt

2020/06/02 10:58

どういたしまして???? ご質問に挙げられているコードにある、重複判定用のリスト > check の替わりに、回答したコードでは、no_lis[0:i] を使っている感じです。
guest

0

最終的にデータフレームでも良いなら処理はpandasが楽です。
リストで欲しいというのであれば、もっかいリストに戻してあげないといけなくなりますが。

python3

1import pandas as pd 2list1 = [{"no": 1, "name": "名前1"}, {"no": 2, "name": "名前2"}, {"no": 1, "name": "名前3"}, {"no": 3, "name": "名前4"}] 3df = pd.DataFrame(list1) 4print(df[~df.duplicated(subset="no")]) 5 6# no name 7#0 1 名前1 8#1 2 名前2 9#3 3 名前4

投稿2020/06/02 06:09

編集2020/06/02 06:10
jeanbiego

総合スコア3966

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2020/06/02 10:30

ありがとうございます! そのモジュールは使ったことがなかったです。 便利そうですね
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問