在Hangman游戏中,如果隐藏的单词是james@james-Aspire-E5-472G:/usr$ find -name libgcc*.*
./lib32/libgcc_s.so.1
./lib/ure/lib/libgcc3_uno.so
./lib/x86_64-linux-gnu/libgccpp.so.1.0.3
./lib/x86_64-linux-gnu/libgccpp.so.1
./lib/gcc/x86_64-linux-gnu/4.9/libgcc_s.so
./lib/gcc/x86_64-linux-gnu/4.9/32/libgcc_s.so
./lib/gcc/x86_64-linux-gnu/4.9/32/libgcc_eh.a
./lib/gcc/x86_64-linux-gnu/4.9/32/libgcc.a
./lib/gcc/x86_64-linux-gnu/4.9/libgcc_eh.a
./lib/gcc/x86_64-linux-gnu/4.9/x32/libgcc_s.so
./lib/gcc/x86_64-linux-gnu/4.9/x32/libgcc_eh.a
./lib/gcc/x86_64-linux-gnu/4.9/x32/libgcc.a
./lib/gcc/x86_64-linux-gnu/4.9/libgcc_s_x32.so
./lib/gcc/x86_64-linux-gnu/4.9/libgcc_s_32.so
./lib/gcc/x86_64-linux-gnu/4.9/libgcc.a
./libx32/libgcc_s.so.1
./share/doc/libgcc-4.9-dev
james@james-Aspire-E5-472G:/usr$ find -name crtbegin.o
./lib/gcc/x86_64-linux-gnu/4.9/crtbegin.o
./lib/gcc/x86_64-linux-gnu/4.9/32/crtbegin.o
./lib/gcc/x86_64-linux-gnu/4.9/x32/crtbegin.o
且玩家猜到hello
,那么我需要找到两个位置的索引。
示例:
l
我无法想出任何方法来找到第二个。我怎么能这样做?
答案 0 :(得分:2)
好吧,你可以使用enumerate
和列表理解:
>>> s = "hello"
>>> indexes = [i for i, v in enumerate(s) if v == "l"]
>>> indexes
[2, 3]
答案 1 :(得分:0)
特别是对于刽子手:
>>> word = 'hello'
>>> guess = 'l'
>>> puzzle = ''.join(i if i == guess else '_' for i in word)
>>> print(puzzle)
__ll_
答案 2 :(得分:0)
您可以做的另一件事是预处理这个词,并且已经在地图中提供了索引列表,因此您不必一直只通过字符串迭代一次。
word = "hello"
map = {}
for i, c in enumerate(word):
if (c in map):
map[c].append(i)
else:
map[c] = [i]
然后,检查猜到的字母是否在地图中。如果是,则该字母存在,否则不存在。