Python 打印非字符串的字母
我想看看一个单词或句子是否有字母表中的每个字母,但我无法让它打印出所有不在句子/单词中的字母Python 打印非字符串的字母,python,boolean,Python,Boolean,我想看看一个单词或句子是否有字母表中的每个字母,但我无法让它打印出所有不在句子/单词中的字母 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
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]:
我被困在那里…容易多了:
import string
x = raw_input()
print [c for c in string.ascii_lowercase if c not in x]
使用
设置差异:
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']
我们所做的就是设置字母字符集和输入字符集之间的差异。请注意,差分运算可以将任何iterable作为第二个操作数,因此,如果我们不愿意,甚至不必将输入转换为集合,尽管这会稍微加快差分速度。此外,还有一个内置字符串,它为我们提供ascii字母,因此我们可以这样做:
import string
print set(string.ascii_lowercase) - raw_input()
由于您已经在两个字符串上迭代,因此不需要使用计数器
和计数器2
你就快到了。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)
这个不错,但它打印的是里面的东西,而不是里面没有的东西。我相信你可以修改代码。如果你不能用基本的Python列表和循环来完成这项工作,那么学习集合操作是没有用的。实际上没有必要用“.join”(x.split())删除空格,因为集合差异不需要严格的子集。
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)