根据字符串的索引对列表进行排序
Sort a list according to the indexes of a string
如何使列表中输入的元素与给定单词的索引相同?
在这种情况下,它是一个在刽子手游戏中随机选择的神秘词。
它可能看起来像这样(这只是我采用的代码部分,但问题就在这里):
import random
WORDS = ('Fire', 'Wind', 'Water', 'Earth')
word = random.choice(WORDS)
letters = []
while len(letter) != len(word):
aletter = input('choose a letter...')
if aletter in word and len(aletter) == 1:
for i in range(len(word)):
letter.append(aletter)
我不知道怎么说,每个添加到列表中的元素都不会乱放,即使我们在输入的第一个字母之前输入它,也会按顺序排列aletter
。
例如,如果单词是 Wind,我在 'W' 之前发送 'i'(在单词中),但我在它之后输入 'W' 然后 'i'将附加在 'W' 之前而不是 ['W', 'i'] (正常顺序是 ['W', 'i', 'n', 'd'] 但对于这个问题,字母可能会完全颠倒,具体取决于它们的附加顺序。我认为这与元素的索引有关。
这就是我试图以某种方式表达的意思:
"此列表 (letters
) 将根据 word
中元素的索引重新排列自身。"
letters[i] = word[k]
上面这个例子有一个双循环,一个用于aletter
,一个用于word
,索引是i
和k
。
letters.insert(i, aletter)
在这个中,我想在 i
.
的位置插入 word
索引中的所有 aletter
letters.index(aletter) == i
最后,在这一个中,我希望输入元素的每个索引都等于 word
。
我将列表转换成字符串来比较它们,但我的问题是如何先对这个列表进行排序。
IIUC,您可能需要使用一些占位符,例如下划线,用于尚未猜出的字母。例如:
import random
WORDS = ('Fire', 'Wind', 'Water', 'Earth')
word = random.choice(WORDS)
letters = ['_' for letter in word]
while '_' in letters:
print(''.join(letters))
aletter = input('choose a letter...')
if aletter in word and len(aletter) == 1:
for i, c in enumerate(word):
if aletter == c:
letters[i] = c
如何使列表中输入的元素与给定单词的索引相同?
在这种情况下,它是一个在刽子手游戏中随机选择的神秘词。
它可能看起来像这样(这只是我采用的代码部分,但问题就在这里):
import random
WORDS = ('Fire', 'Wind', 'Water', 'Earth')
word = random.choice(WORDS)
letters = []
while len(letter) != len(word):
aletter = input('choose a letter...')
if aletter in word and len(aletter) == 1:
for i in range(len(word)):
letter.append(aletter)
我不知道怎么说,每个添加到列表中的元素都不会乱放,即使我们在输入的第一个字母之前输入它,也会按顺序排列aletter
。
例如,如果单词是 Wind,我在 'W' 之前发送 'i'(在单词中),但我在它之后输入 'W' 然后 'i'将附加在 'W' 之前而不是 ['W', 'i'] (正常顺序是 ['W', 'i', 'n', 'd'] 但对于这个问题,字母可能会完全颠倒,具体取决于它们的附加顺序。我认为这与元素的索引有关。
这就是我试图以某种方式表达的意思:
"此列表 (letters
) 将根据 word
中元素的索引重新排列自身。"
letters[i] = word[k]
上面这个例子有一个双循环,一个用于aletter
,一个用于word
,索引是i
和k
。
letters.insert(i, aletter)
在这个中,我想在 i
.
word
索引中的所有 aletter
letters.index(aletter) == i
最后,在这一个中,我希望输入元素的每个索引都等于 word
。
我将列表转换成字符串来比较它们,但我的问题是如何先对这个列表进行排序。
IIUC,您可能需要使用一些占位符,例如下划线,用于尚未猜出的字母。例如:
import random
WORDS = ('Fire', 'Wind', 'Water', 'Earth')
word = random.choice(WORDS)
letters = ['_' for letter in word]
while '_' in letters:
print(''.join(letters))
aletter = input('choose a letter...')
if aletter in word and len(aletter) == 1:
for i, c in enumerate(word):
if aletter == c:
letters[i] = c