3

文字列のリストを定義したPython2.7でコードを書いています。次に、このリストの要素で文字のセットを検索します。これらの文字はランダムな順序である必要があります。つまり、入力からすべての1文字をリストで検索します。私はグーグルで回っていますが、解決策が見つかりません。

これが私が得たものです:

wordlist = ['mississippi','miss','lake','que']

letters = str(aqk)

for item in wordlist:
    if item.find(letters) != -1:
        print item

これは一例です。ここでは、これらの単語に「a」、「q」、および「k」が含まれているため、出力は「lake」および「que」のみである必要があります。これが行われるようにコードを書き直すにはどうすればよいですか?

前もって感謝します!

アレックス

4

5 に答える 5

12

それは簡単に使用できますset()

wordlist = ['mississippi','miss','lake','que']

letters = set('aqk')

for word in wordlist:
    if letters & set(word):
        print word

出力:

lake
que

注:オペレーター&は、2つのセットを交差させます。

于 2012-02-25T10:50:36.310 に答える
1
for item in wordlist:
    for character in letters:
        if character in item:
            print item
            break
于 2012-02-25T10:49:09.183 に答える
1

これがあなたの解決策です:

for item in wordlist:
  b = False
  for c in letters:
    b = b | (item.find(c) != -1)
  if b:
    print item
于 2012-02-25T10:50:42.423 に答える
0
[word for word in wordlist if any(letter in word for letter in 'aqk')]
于 2012-02-25T10:52:58.680 に答える
0

セットとin構文を使用してチェックします。

wordlist = ['mississippi','miss','lake','que']

letters = set('aqk')

for word in wordlist:
   if word in letters:
       print word
于 2012-02-25T12:27:45.953 に答える