gpt4 book ai didi

python - 使用用户输入在列表中查找和替换(python)

转载 作者:行者123 更新时间:2023-12-01 05:00:04 25 4
gpt4 key购买 nike

我需要有关作业的额外学分部分的帮助。目标是创建一个列表,然后允许用户输入自己的数据(在本例中为鸟类),然后对鸟类进行排序并返回。额外的积分部分是为了允许用户在之后编辑任何信息。我不知道如何查找/替换用户提供的内容。

代码:

def sorted_list():
bird_list.sort()
for i in bird_list:
print(i)
print()
print('There are', len(bird_list), 'birds in the list.')
#end for
#end def

cond = 'y'

while cond == 'y':
bird = input('Type the name of another bird (RETURN when finished): ')
if bird in bird_list:
print(bird, 'is already in the list.')
else:
bird_list.append(bird)
print(bird, 'has been added to the list.')
if bird == '':
cond = 'n'
sorted_list()
#end if
#end while

edit = input('Edit? (y/n) ')

print()
if edit == 'y':
change = input('Which bird would you like to change? ')
if change == bird_list[0]:
i = input('Enter correction ' )
else:
print('Entry not found in list')

编辑:

使用此解决了编辑问题

if edit == 'y':
change = input('Which bird would you like to change? ')
if change in bird_list:
loc = bird_list.index(change)
bird_list.remove(change)
correction = input('Enter correction ' )
bird_list.insert(loc, correction)
else:
print('Entry not found in list')

最佳答案

首先,您可以使用 .index 查找项目在列表中的位置。

但是您的代码中还有另一个问题,这就是当您输入位于列表中索引 0 处的名称时,您会收到 'Entry not find on list' 输出的原因,即是第一次您输入空白字符串(输入Enter键而不输入任何内容),您在bird_list中附加一个空白字符串鸟名,并且您的 sorted_list 方法对列表第一个位置的空白字符串 '' 进行排序,如下所示:

if bird in bird_list:
print(bird, 'is already in the list.')
# if bird is ''(first time), it will be appended to the list, too
else:
bird_list.append(bird)
print(bird, 'has been added to the list.')
if bird == '':
cond = 'n'
# and this will sort '' in the 0 index of the list
sorted_list()

正确的逻辑应该是:

if bird in bird_list:
print(bird, 'is already in the list.')
elif bird != '':
bird_list.append(bird)
print(bird, 'has been added to the list.')
else:
cond = 'n'
sorted_list()

关于python - 使用用户输入在列表中查找和替换(python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26457418/

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