2

次のタイトルのリストがあります。

titles = ['Saw (US)', 'Saw (AU)', 'Dear Sally (SE)']

どうすれば次のようになりますか:

titles = ['Saw (US)', 'Dear Sally (SE)']

基本的に、重複したタイトルを削除する必要があります。オンになっている限り、どの領域が表示されても問題ありません (つまり、重複を削除できます)。

これが私が試したものですが、失敗しました:

[title for title in localized_titles if title.split(' (')[0] not in localized_titles]
4

7 に答える 7

1

それがタイトルの正確な形式である場合は、正しいことを確認してくださいlocalized_titles

generic_titles = [t.split('(')[0] for t in titles]
titles = [title for title in titles if title.split(' (')[0] not in generic_titles]

ただし、タイトルに他の括弧があると、これはすべて壊れます。

于 2013-05-14T21:48:17.070 に答える
0
>>> from collections import OrderedDict
>>> titles = ['Saw (US)', 'Saw (AU)', 'Dear Sally (SE)']
>>> list(OrderedDict((t.rpartition(' (')[0], t) for t in titles).values())
['Saw (AU)', 'Dear Sally (SE)']
于 2013-05-14T23:14:17.213 に答える
0

コードゴルフのために:

titles = ['('.join(x) for x in dict([x.split('(') for x in titles]).items()]

(国の始まりで、タイトルごとに1 文字のみを想定しています。

于 2013-05-14T22:02:41.593 に答える