0

次のような文字列のリストがあるとします。

lst =  ['aa bb', 'cc dd', 'cc aa']

これを次のような一意の単語のリストに入れるにはどうすればよいですか。

['aa', 'bb', 'cc', 'dd']

理解を使用していますか?これが私が得た限りではありませんが、役に立ちません:

wordList = [x.split() for row in lst for x in row]
4

4 に答える 4

1

秩序を保つために、次のようなことができます:

>>> from collections import OrderedDict
>>> lst =  ['aa bb', 'cc dd', 'cc aa']
>>> new = []
>>> for i in lst:
...     new.extend(i.split())
...
>>> list(OrderedDict.fromkeys(new))
['aa', 'bb', 'cc', 'dd']

set()Martijn が指摘したように、 a を使用する方がおそらく高速であることに注意してください。

于 2013-07-23T11:06:28.437 に答える
1

最も効率的ではありませんが、おそらくこれが最も簡単なアプローチだと思います。

set(' '.join(lst).split())

本当にリストが必要な場合は、それを呼び出しでラップするだけですlist()

于 2013-07-23T11:27:55.103 に答える