我正在将这段代码用于我需要为朋友设计的小程序。问题是无法让它发挥作用。
我正在设计一个使用蔬菜和水果清单的程序。 例如我的列表是:
smallist = [["apple", 2], ["banana", 3], ["strawberry",1]]
item = input("Please give the name of the fruit\n\n")
smallist.index(item)
print (smallist)
问题是当我尝试找到让我们说苹果的索引时。我只是说苹果不存在。
smallist.index(item)
ValueError: 'apple' is not in list
我无法弄清楚为什么它不会向我展示苹果的价值,在这种情况下它将是2
答案 0 :(得分:5)
apple
smallist
中不是。它位于smallist
内的嵌套列表中。
你必须用循环搜索它:
for i, nested in enumerate(smallist):
if item in nested:
print(i)
break
此处enumerate()
为我们创建了一个运行索引,同时循环遍历smallist
,以便我们可以打印找到它的索引。
如果你想要做的是打印另一个值,我们不需要索引:
for name, count in smallist:
if name == item:
print(count)
break
但是在这里使用字典会更容易:
small_dict = dict(smallist)
print(small_dict.get(item, 'Not found'))
答案 1 :(得分:0)
“apple”不在smallist
,[“apple”,2]是。
您的数据会更好地融入字典:
smaldict = {'apple': 2, 'banana': 3, 'strawberry': 1}
item = input("Please give the name of the fruit\n\n")
if item in smaldict:
print(smaldict[item])
else:
print('"{item}" is not in the dictionary.'.format(item=item))