如何将控制台输入转为多值列表?含文件读取与ID匹配需求
Python多名称匹配帖子ID解决方案
一、处理控制台多值输入
用split()把用户输入的空格分隔字符串拆成名称列表,再遍历每个名称精确匹配对应的帖子ID:
titles = ["james", "lisa", "kim"] post_ids = [5, 6, 9] # 读取控制台输入并拆分成名称列表 input_names = input("输入匹配名称(空格分隔):").strip().split() matched_ids = [] for name in input_names: if name in titles: # 找到名称对应的索引,取对应ID idx = titles.index(name) matched_ids.append(post_ids[idx]) print("匹配到的ID:", matched_ids)
运行后输入james kim,会输出匹配到的ID: [5, 9],完全符合需求。
二、从file.txt按行读取名称匹配
如果名称存在file.txt(每行一个名称),用文件读取方法批量处理:
titles = ["james", "lisa", "kim"] post_ids = [5, 6, 9] # 读取文件里的名称,自动过滤空行 with open("file.txt", "r", encoding="utf-8") as f: file_names = [line.strip() for line in f if line.strip()] matched_ids = [] for name in file_names: if name in titles: idx = titles.index(name) matched_ids.append(post_ids[idx]) print("文件匹配到的ID:", matched_ids)
假设file.txt内容是:
james kim
运行后会输出文件匹配到的ID: [5, 9]。
三、处理重名场景(可选)
如果titles里有重复名称,用enumerate()遍历所有元素,收集所有匹配的ID:
matched_ids = [] for name in input_names: # 遍历所有索引和名称,收集所有匹配的ID for idx, title in enumerate(titles): if title == name: matched_ids.append(post_ids[idx])
内容的提问来源于stack exchange,提问作者user20859230
相关产品推荐
相关产品推荐

