python - 如何修复值错误:“CB7”不在列表中?
问题描述
(为了清楚起见重新发布)当我将鼠标放在return lst
:上时,此函数返回带有代码位置的列表[1, 4, 7]
(正如它应该做的那样)但是当我调用该函数时它给了我错误builtins.ValueError: 'CB7' is not in list
我意识到问题出在[i:].index(single_code) + i
如何在不使用enumerate()
和列出理解的情况下修复它?
这是我的代码:
sp_codes = ['EB9', 'CB7', 'EB9', 'N4Y', 'CB7', '4B9', '9OP', 'CB7', '4B9']
return lst
'''
testing code
'''
single_code = input('Enter a code: ') #Enter 'CB7'
pos_list = find_indexes(sp_codes, single_code)
print(pos_list) # ---> Prints [1, 4, 7]
解决方案
此解决方案应该有效:
sp_codes = ['EB9', 'CB7', 'EB9', 'N4Y', 'CB7', '4B9', '9OP', 'CB7', '4B9']
def find_indexes(sp_codes, single_code):
lst = []
for i in range(0, len(sp_codes)):
if single_code in sp_codes[i:]:
index = sp_codes[i:].index(single_code) + i
if index not in lst:
lst.append(index)
else:
break
return lst
'''
testing code
'''
single_code = input('Enter a code: ') # Enter 'CB7'
pos_list = find_indexes(sp_codes, single_code)
print(pos_list) # ---> Prints [1, 4, 7]
此检查天气列表中是否有更多代码出现,如果没有,则跳出循环语句。这可以防止它检查没有指定代码的列表,因此不会导致错误。
推荐阅读
- c# - 如何找到 IEnumerable
元素类型? - java - Android Studio:无法将进程工作目录设置为“新目录”
- mysql - 如何为活动步行检索最快运动员的数据?
- python - tk.PhotoImage 无法打开“gif”
- c# - 将选择/下拉项的值传递给控制器仅接收 0
- excel - 使用数组使用 VBA 绘制树/格子
- vue.js - 如何在 vue cli 中设置 webpack uglifyoptions 以维护评论?
- reactjs - @babel/plugin-transform-react-jsx-source 的目的是什么?
- javascript - 用 html 按钮替换字符串中的自定义标记
- flutter - Flutter 使用 Streambuilder 对数据 Firestore 进行排序