0

要素を識別する番号を除いて、ほぼ重複する要素を含むリストがあります。重複を含む最初の要素の数を維持しながら、すべての重複を削除したいと思います。

たとえば、次のように置き換えlたいlnew

l = ['iter1apple','iter2banana','iter3carrot','iter4apple','iter5orange','iter6banana','iter7mango']

lnew = ['iter1apple','iter2banana','iter3carrot','iter5orange','iter7mango']

これは、リスト要素の残りの部分から数値を分割し、リストをセットに変換し、分割された要素で使用することと関係があると思いますが、そのdefaultdict方法がわかりません。

任意の提案をいただければ幸いです。

4

1 に答える 1

1

私があなたを正しく理解しているなら、あなたはすでにリストに含まれている1つの要素で終わるアイテムを破棄したいと思います。その場合、正規表現とリストを使用して、使用された要素を追跡できます。

import re

l = ['iter1apple', 'iter2banana', 'iter3carrot', 'iter4apple', 'iter5orange', 'iter6banana', 'iter7mango']
duplicates = []
lnew = []
for item in l:
    match = re.match("^iter\d+(\w+)$", item)
    if match and not match.group(1) in duplicates:
        duplicates.append(match.group(1))
        lnew.append(item)

# lnew = ['iter1apple','iter2banana','iter3carrot','iter5orange','iter7mango']
于 2013-03-24T21:30:09.357 に答える