在运行到26的第二个for循环中,我希望每次将其从列表中删除时将其设置为零,以便我可以从头开始检查list1中所有字母的集合中是否存在一个字母。我尝试在for循环内的if语句内添加i = 0,但它返回其范围值,并且不会重置为零。
import string
def getAvailableLetters(lettersGuessed):
str1 = string.ascii_lowercase
list1 = [ ]
list1 = ['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']
str3 = ""
str4 = str3.join(lettersGuessed)
for j in range(len(str4)):
for i in range(26):
if list1[i] == str4[i]:
list1.remove(list1[i])
lettersGuessed = ['e', 'i', 'k', 'p', 'r', 's']
getAvailableLetters(lettersGuessed)
最佳答案
尝试这样的事情:
import string
def getAvailableLetters(lettersGuessed):
return sorted(set(string.ascii_lowercase) - set(lettersGuessed))
lettersGuessed = ['e', 'i', 'k', 'p', 'r', 's']
getAvailableLetters(lettersGuessed)