gpt4 book ai didi

python - 打印在 python 列表中找到的字符的两次出现

转载 作者:太空宇宙 更新时间:2023-11-03 14:27:15 25 4
gpt4 key购买 nike

第一次来这里(也是一个编程菜鸟),希望我的格式正确!

我正在尝试制作一个函数,该函数将打印出列表中某个字母出现的位置。下面的代码找到字母并打印出字母在列表中的位置,即如果您搜索“a”,程序将在第二个位置 (x+1) 中回答它。

问题是,如果我搜索出现不止一次的字母(例如字母“e”),程序会在两个位置找到该字母,但在这两种情况下都会打印出它在第 10 个位置.

我想找出为什么,在这种情况下应该是第 10 位和第 17 位。

# store string in variable
solution = list('can you guess me')
guess = raw_input('What letter do you guess on? ')

# Search list
def search(guess):
nothing = 0
for x in solution:
if x == guess:
print x,
print "is in ",
print solution.index(x) + 1
nothing = 1

if nothing == 0:
print "Couldn't find ",
print guess

search(guess)

如果选择e,像这样:

What letter do you think is in the answer?  e

程序打印出:

e is in  11
e is in 11

我想知道为什么。 :/

最佳答案

这种方法怎么样:

solution = 'This is the solution'

# Search list
def search(guess):
return [i for i,x in enumerate(solution) if x == guess]

guess = raw_input('Enter your guess: ')
result = search(guess)
if result:
positions = ','.join(str(i+1) for i in result)
print('{0} was found in positions {1}'.format(guess, positions))
else:
print('Sorry, {0} was not found!'.format(guess))

我们在这里所做的是逐步完成解决方案,如果某个字符与猜测匹配,我们将返回其位置。如果没有字符匹配,则该方法将返回一个空列表;这是一个值。

然后,我们只检查方法的返回值。如果它是一个列表,我们将 1 添加到位置(因为列表索引从 0 开始),然后打印出来。

关于python - 打印在 python 列表中找到的字符的两次出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18252880/

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