3

我正在用 Python 2.7 编写代码,其中定义了一个字符串列表。然后我想在这个列表的元素中搜索一组字母。这些字母的顺序必须是随机的。即在列表中搜索输入中的每个字母。我一直在google,但我还没有找到解决方案。

这是我得到的:

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

letters = str(aqk)

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

这是一个例子。这里唯一的输出应该是“lake”和“que”,因为这些词包含“a”、“q”和“k”。我怎样才能重写我的代码才能完成?

提前致谢!

亚历克斯

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

注意:运算&符在两组之间进行交集。

于 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 回答