【发布时间】:2021-08-11 04:53:10
【问题描述】:
这里是python初学者。 According to this thread,,我学会了如何访问列表中元组的值。
这是上面帖子中的答案:
[x[1] for x in L]
我这里有一个元组列表:
[('w', False), ('o', True), ('r', False), ('d', False)]
我想读取每个元组中的 True/False 值,如果值为 false,则打印下划线,如果值为 true,则打印字符。例如,在上面的列表中,由于 'o' 是 True 的项目,我想打印 _o__。
这是我迄今为止一直在尝试的,我觉得我的方向是正确的,但是由于我正在写这个线程,它显然不起作用:
for char in word: #part i need help on
if [x[1] for x in word] == True:
print("_", end="")
elif [x[1] for x in word] == False:
print(word[char], end="")
如果需要更多信息,这是完整的代码(刽子手游戏的开始,还有很长的路要走),但特别是我需要上述代码块的帮助:
randomword = "word" #will add random words when it works properly
word = [(char, False) for char in randomword] #splits randomword into list of tuples of different characters with a false value assigned because no letters have been guessed yet
def getLetter(): #letter guessing function, limits input to one character
guess = input("Guess a letter: ")
if len(guess) != 1 or (guess.isalpha()) == False:
while len(guess) != 1 or (guess.isalpha()) == False:
print("Must be" + "\033[96m one letter!" + "\033[0m Try again.")
guess = input("Guess a letter: ")
return guess
guess = getLetter()
for char in range(word.__len__()):
if word[char][0] == guess.lower():
word[char] = (guess, True) #a correct guess changes the False to True
print(word)
for char in word: #part i need help on
if [x[1] for x in word] == True:
print("_", end="")
elif [x[1] for x in word] == False:
print(word[char])
【问题讨论】:
标签: python list for-loop tuples list-comprehension