Python中如何判断两个列表中各自指定元素的索引是否相等
Python判断两个列表指定元素索引是否相等的实现方法
报错原因分析
TypeError: list indices must be integers or slices, not str错误通常由错误使用列表元素值作为索引下标导致,例如出现list1['name1']这类不符合Python语法的写法,正确的操作是调用列表的index()方法获取目标元素对应的索引值后再做比较。
正确实现代码
写法1:先做存在性校验,避免抛出异常
list1 = ['name1', 'name2', 'name3'] list2 = [123, 1234, 12345] # 模拟用户输入的两个目标元素 target1 = input("请输入list1的目标元素:") # list2元素为整数类型,用户输入默认为字符串,需做类型转换 target2 = int(input("请输入list2的目标元素:")) # 先校验元素是否存在于对应列表 if target1 not in list1 or target2 not in list2: print("至少有一个目标元素不存在于对应列表中") else: # 获取两个元素的索引并比较 idx_equal = list1.index(target1) == list2.index(target2) print(f"两个元素的索引是否相等:{idx_equal}")
写法2:用异常捕获处理边界场景
list1 = ['name1', 'name2', 'name3'] list2 = [123, 1234, 12345] target1 = input("请输入list1的目标元素:") try: target2 = int(input("请输入list2的目标元素:")) except ValueError: print("list2的元素为整数类型,输入值类型不匹配") else: try: idx_equal = list1.index(target1) == list2.index(target2) print(f"两个元素的索引是否相等:{idx_equal}") except ValueError: print("至少有一个目标元素不存在于对应列表中")
测试效果
- 输入
name1和123,输出结果为True - 输入
name2和12345,输出结果为False - 输入不存在的元素或类型不匹配的输入,会触发对应的提示
内容的提问来源于stack exchange,提问作者Isy
相关产品推荐
相关产品推荐

