我正在尝试查看单词或句子是否包含字母表中的每个字母,而我无法打印出所有不在句子/单词中的字母。
alpha = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t'
,'u','v','w','x','y','z']
x = raw_input('')
counter = 0
counter2 = 0
for i in range(len(x))
counter += 1
for o in range(26):
counter2 += 1
if alpha[counter2] not in x[counter]:
我被困在那里......
答案 0 :(得分:4)
alphabet = {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t'
,'u','v','w','x','y','z'}
input_chars = set(raw_input())
print alphabet - input_chars
我们所做的只是在输入中设置字母字符集和字符集之间的差异。请注意,差异操作可以作为任何可迭代的第二个操作数,因此如果我们不想,我们甚至不必将输入转换为集合,尽管这会加快差异。此外,有一个内置的字符串,它给我们ascii字母,所以我们可以这样做:
import string
print set(string.ascii_lowercase) - raw_input()
答案 1 :(得分:2)
使用set difference
:
import string
x=raw_input()
not_found=set(string.ascii_lowercase) - set("".join(x.split()))
print (list(not_found))
<强>输出:强>
>>>
the quick brown fox
['a', 'd', 'g', 'j', 'm', 'l', 'p', 's', 'v', 'y', 'z']
答案 2 :(得分:1)
更容易:
import string
x = raw_input()
print [c for c in string.ascii_lowercase if c not in x]
答案 3 :(得分:1)
由于您已经在迭代这两个字符串,因此无需使用counter
和counter2
。
你快到了。 Python使列表操作变得简单,因此不需要使用索引逐个元素地迭代列表:
alphabet = 'abcdefghijklmnopqrstuvwxyz'
sentence = raw_input('Enter a sentence: ').lower() # Because 'a' != 'A'
letters = []
for letter in sentence:
if letter in alphabet and letter not in letters:
letters.append(letter)
print(letters)