我需要帮助我的作业额外的学分。目标是制作一个列表,然后允许用户输入他们自己的数据(在这种情况下是鸟类)然后它排序并返回鸟类。额外的信用部分是允许用户在之后编辑任何信息。我不知道如何找到/替换用户提供的内容。
代码:
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')
答案 0 :(得分:1)
看起来你打算根据他们的名字找到任意鸟的位置。要在python列表中查找具有特定值的项,请使用list.index
。 stdtypes documentation
答案 1 :(得分:1)
首先,您可以使用.index
在列表中查找项目的位置。
但是你的代码还有另外一个问题,这就是当你输入一个名字时你得到'Entry not found on list'
输出的原因,这个名字在列表的索引0处,即第一次您输入一个空白字符串(输入Enter
键而不输入任何内容),在bird_list
附加一个空白字符串鸟名称,并且您的sorted_list
方法将空字符串{{ 1}}在列表的第一位,这里:
''
正确的逻辑应该是:
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()