如何按顺序将年龄、IQ输入与姓名列表逐一关联匹配?
实现姓名与年龄、IQ的关联
首先,你需要先获取年龄和IQ的输入数据,同时过滤掉每行末尾的注释内容:
# 获取姓名列表 names = input().split() # 获取年龄列表:先分割掉注释部分,再将数值转为整数 ages = list(map(int, input().split('#')[0].split())) # 获取IQ列表:同样处理注释并转换数值类型 iqs = list(map(int, input().split('#')[0].split()))
接下来有两种常用的绑定方式,按需选择:
方式一:用字典存储单用户完整信息
把姓名作为键,对应的年龄和IQ组成子字典作为值,方便通过姓名直接查询:
user_info = {} for name, age, iq in zip(names, ages, iqs): user_info[name] = {'age': age, 'iq': iq} # 测试示例 print(user_info['john']) # 输出: {'age': 15, 'iq': 70} print(user_info['bob']) # 输出: {'age': 17, 'iq': 92}
方式二:用列表存储用户元组
如果需要保留输入的顺序,可将每个用户的姓名、年龄、IQ打包成元组存入列表:
users = list(zip(names, ages, iqs)) # 测试示例 print(users[0]) # 输出: ('john', 15, 70) print(users[1]) # 输出: ('bob', 17, 92)
关键说明
zip(names, ages, iqs)会自动把三个列表中对应位置的元素打包,正好实现姓名与对应年龄、IQ的一一绑定。split('#')[0]的作用是截断每行末尾的注释内容(比如# age),只保留前面的有效数值字符串。
内容的提问来源于stack exchange,提问作者YxC
相关产品推荐
相关产品推荐

