gpt4 book ai didi

python pangram 跳过第二个字母

转载 作者:行者123 更新时间:2023-12-01 04:01:39 28 4
gpt4 key购买 nike

这是我编写的全语法的函数。由于某种原因,alpha[num]采用a,c,e,g等而不是采用a,b,c,d,e等等

def ispangram(str1,alphabet=string.ascii_lowercase):

alpha = []
alpha += alphabet
str1 = list(str1)
for num in range(0,25):
print num
print alpha[num]
for equal in str1:
print equal
if alpha[num] == equal:
alpha.pop(num)
print alpha
break
else:
continue

if alpha == none:
print 'true'
else:
print 'false'

最佳答案

您在迭代时修改了 alphabet,这会导致您错过。

不过,此代码可以大大简化,从而提高您使用时的性能。不要进行两次迭代,而是将字母表保存到集合中,然后迭代字符串,删除遇到的每个字符(集合中的O(1)操作)。完成迭代后,如果 set 为空,则意味着您已经遇到了字母表中的每个字母,使该字符串成为一个全语法:

def ispangram(str1, alphabet = string.ascii_lowercase):

alpha = set(alphabet)
for ch in str1:
if ch in alpha:
alpha.remove(ch)

return len(alpha) == 0

编辑:
实际上,更优雅的是,您可以将两个字符串都转换为 set 并减去它们:

def ispangram(str1, alphabet = string.ascii_lowercase):

alpha = set(alphabet)
alpha -= set(str1)

return len(alpha) == 0

或者,作为单行:

def ispangram(str1, alphabet = string.ascii_lowercase):
return len(set(alphabet) - set(str1)) == 0

关于python pangram 跳过第二个字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36387408/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com