检查两个数组元素:判断date数组中的姓名是否存在于name数组中
数组中姓名存在性判断的正确实现
先说说你原代码里的几个问题:
- 变量名写错了:你定义的数组是
date,但循环里用了data,运行会直接报NameError - 循环逻辑完全乱了:每次循环都把
x重置为0,而且手动修改i的值根本没用——for循环的i是由range()自动控制的 - 用
name.index()不合适:这个方法找不到元素会直接抛错,而你的需求只是判断是否存在,不需要获取索引
针对你的需求,正确的思路是:先从date的全名里提取出名字部分(空格分隔的第一个字符串),再检查这个名字是否在name数组里。下面是两种实现方式:
基础遍历输出
date = ['Olivia Smith', 'Jacob Williams', 'Jessica Taylor', 'Harry Miller'] name = ['Olivia', 'Jessica', 'Jacob', 'James'] for full_name in date: first_name = full_name.split()[0] if first_name in name: print(f"{first_name} 存在于name数组中") else: print(f"{first_name} 不存在于name数组中")
批量获取结果(适合后续处理)
如果需要把结果存成列表,或者数据量比较大,建议把name转成集合——集合的查找效率比数组高很多:
date = ['Olivia Smith', 'Jacob Williams', 'Jessica Taylor', 'Harry Miller'] name = ['Olivia', 'Jessica', 'Jacob', 'James'] name_set = set(name) exists_result = [full_name.split()[0] in name_set for full_name in date] print(exists_result) # 输出: [True, True, True, False]
内容的提问来源于stack exchange,提问作者Wex
相关产品推荐
相关产品推荐

