如何分割txt读取的/分隔列表?及动物信息字典构建咨询
问题解答
1. 分割列表得到独立元素
你现在拿到的列表里每个元素是带换行符的整行字符串,要拆分出独立信息,按以下步骤处理:
- 先用
strip()方法去掉每行末尾的换行符和前后多余空格 - 再用
split(' / ')按指定分隔符拆分(你的分隔符是空格+斜杠+空格)
修改后的代码示例:
def read_file(): with open("Animals.txt", "r", encoding="utf-8") as textfile: lines = textfile.readlines() split_list = [] for line in lines[1:]: # 跳过第一行表头 cleaned_line = line.strip() items = cleaned_line.split(' / ') split_list.append(items) print(split_list)
运行后会得到嵌套列表,每个子列表的元素都是独立的:
[['Bear', 'winter', '9-20', '12'], ['Nightowl', '-', '21-05', '21'], ['Sealion', '-', '6-18', '14'], ...]
你可以通过索引访问,比如split_list[0][0]对应Bear,split_list[0][1]对应winter。
2. 用字典更合适,创建方法如下
字典天生适配这种键值关联的场景,用动物名当键,对应信息列表当值,查找效率和可读性都比列表高。
实现代码示例:
def read_file(): animal_dict = {} with open("Animals.txt", "r", encoding="utf-8") as textfile: lines = textfile.readlines() for line in lines[1:]: # 跳过表头行 cleaned_line = line.strip() items = cleaned_line.split(' / ') animal_name = items[0] animal_info = items[1:] # 提取除动物名外的所有信息 animal_dict[animal_name] = animal_info print(animal_dict)
运行后会得到结构清晰的字典:
{'Bear': ['winter', '9-20', '12'], 'Nightowl': ['-', '21-05', '21'], 'Sealion': ['-', '6-18', '14'], ...}
之后要查询某只动物的信息,直接用animal_dict['Bear']就能拿到对应的信息列表,非常直观。
额外提两个实用细节:
- 别用
list当变量名,这是Python内置的列表类型,会覆盖原有功能 - 用
with语句打开文件,无需手动调用close(),更安全简洁
内容的提问来源于stack exchange,提问作者Karluk
相关产品推荐
相关产品推荐

