以随机顺序搜索包含特定字母的列表中的字符串

时间:2012-02-25 10:43:46

标签: python string find contain

我在Python 2.7中编写了一个代码,我在其中定义了一个字符串列表。然后,我想要搜索此列表的元素以获取一组字母。这些字母必须是随机的。即从输入中搜索每个单个字母。 我一直在谷歌,但我还没有找到解决方案。

这是我得到的:

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

letters = str(aqk)

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

这是一个例子。这里唯一的输出应该是'lake'和'que',因为这些单词包含'a','q'和'k'。 如何重写我的代码以便这样做?

提前致谢!

亚历

5 个答案:

答案 0 :(得分:12)

使用set()

会很容易
wordlist = ['mississippi','miss','lake','que']

letters = set('aqk')

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

输出:

lake
que

注意: &运算符在两组之间执行intersection

答案 1 :(得分:1)

for item in wordlist:
    for character in letters:
        if character in item:
            print item
            break

答案 2 :(得分:1)

以下是您的解决方案:

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

答案 3 :(得分:0)

[word for word in wordlist if any(letter in word for letter in 'aqk')]

答案 4 :(得分:0)

使用sets和in语法进行检查。

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

letters = set('aqk')

for word in wordlist:
   if word in letters:
       print word