如何在Python嵌套列表中查找元素并返回对应子列表名称?
解决方法
首先要指出你原代码里的两个问题:
GROUPS.append(TD_A , TD_B , ... , TD_F)语法错误,append()一次只能添加一个元素,你要么用GROUPS.extend([TD_A, TD_B, ..., TD_F]),要么多次调用append。- 更关键的是:把列表直接放进总列表后,程序没法获取这些列表原来的变量名(比如TP_F),因为变量名只是指向列表对象的引用,列表本身没有“名称”这个属性。
所以正确的做法是用字典来存储小组信息,把小组名称作为键,成员列表作为值,这样就能轻松关联成员和小组:
代码实现
1. 定义小组字典
# 用字典存储小组名称和对应的成员列表 groups = { 'TP_A': ['a', 'b', 'c'], 'TP_B': ['d', 'e', 'f'], # 省略其他小组 'TP_F': ['x', 'y', 'z'] }
2. 编写查找函数
def find_member_group(target_name, groups_dict): # 遍历字典的每个键值对(小组名称+成员列表) for group_name, members in groups_dict.items(): if target_name in members: return group_name # 如果找不到对应成员,返回None return None
3. 调用示例
# 查找'y'所在的小组 result = find_member_group('y', groups) print(result) # 输出: TP_F
补充说明
如果一个成员可能在多个小组里,你可以修改函数返回所有匹配的小组名称:
def find_member_groups(target_name, groups_dict): matched_groups = [] for group_name, members in groups_dict.items(): if target_name in members: matched_groups.append(group_name) return matched_groups # 调用示例 print(find_member_groups('y', groups)) # 输出: ['TP_F']
内容的提问来源于stack exchange,提问作者Fatch
相关产品推荐
相关产品推荐

