我在试着找出一根线是不是一个Pangram。我的方法是通过使用set方法使字符串具有唯一的字母。然后使用string.ascii作为基本字母表。我在一些测试后发现,如果我尝试将2与'in‘运算符进行比较。有些字母会被忽略,不会从字母表中删除。
def is_pangram(sentence):
uniqueLetters = set(sentence.lower().replace(" ", ""))
alphabet = list(string.ascii_lowercase)
for letter in alphabet:
if letter in uniqueLetters:
alphabet.remove(letter)
if len(alphabet) <= 0:
return True
return False
print(is_pangram("qwertyuiopasdfghjklzxcvbnm"))
这个例子将比较13个字母,其余的则不会。有谁能给我指个方向吗?我对set有什么误解吗?
发布于 2019-03-13 01:25:22
也许下面的代码可以满足您的需求:
import string
target = set('qwertyuiopasdfghjklzxcvbnm')
all((k in target for k in set(string.ascii_lowercase)))
https://stackoverflow.com/questions/55127262
复制相似问题