如何获取代码中的ID 6?当前Python代码错误原因及修正咨询
代码错误原因及获取ID 6的解决方法
先看你给出的代码:
title = ['james','tom','kim'] post_id = [5,6,9] what_to_look = ['tom','kim'] x = title == post_id if what_to_look == x: print('find') else: print('not found')
代码逻辑失效的原因
- 完全偏离需求逻辑:你要实现的是用户名对应ID的查找,但当前代码只做了无意义的类型比较。
x = title == post_id:title是字符串列表,post_id是数字列表,两者不可能相等,所以x的值是False。if what_to_look == x:把列表['tom','kim']和布尔值False做比较,结果必然是False,所以永远只会输出not found,完全没关联到用户名和ID的对应关系。
获取ID 6的正确方法
ID 6对应用户名tom,可以通过两种方式实现:
方法1:用字典建立用户名-ID映射(推荐)
字典的键值对结构能直接通过用户名快速定位ID:
title = ['james','tom','kim'] post_id = [5,6,9] # 构建用户名到ID的映射字典 user_id_map = dict(zip(title, post_id)) # 获取tom对应的ID target_id = user_id_map['tom'] print(target_id) # 输出6
方法2:通过列表索引匹配
先找到tom在title中的位置,再取post_id对应位置的值:
title = ['james','tom','kim'] post_id = [5,6,9] # 找到tom的索引位置 index = title.index('tom') # 获取对应ID target_id = post_id[index] print(target_id) # 输出6
如果要批量查找what_to_look里的用户名对应ID,可循环处理:
title = ['james','tom','kim'] post_id = [5,6,9] what_to_look = ['tom','kim'] user_id_map = dict(zip(title, post_id)) for name in what_to_look: if name in user_id_map: print(f"{name}对应的ID是{user_id_map[name]}") else: print(f"{name}未找到对应ID")
内容的提问来源于stack exchange,提问作者user20859230
相关产品推荐
相关产品推荐

