Python文本拆分问题:如何将特定格式文本转为嵌套列表
如何修改代码实现目标文本格式转换?
你的需求是将以下输入文本:
1:a,b,c 2:d,e,f
转换为嵌套列表格式:
[[1, ['a', 'b', 'c']],[2, ['d', 'e', 'f']]]
你当前的代码存在两个小问题:一是变量名笔误,二是没有对冒号后的字符串做逗号分割。你现在的代码:
letters = open("letters.txt") alist = [] for line in favmovies: line = line.strip().split(":") line[0] = int(line[0]) alist.append(line)
运行后得到的结果是:
[[1, 'a,b,c'], [2, 'd,e,f']]
修正方案
咱们只需要两步就能搞定:
- 修正变量名的笔误:把循环里的
favmovies改成letters,不然会触发未定义变量的错误 - 对冒号分割后的第二部分字符串,再用逗号
split(",")拆分成列表
另外,推荐用with语句打开文件,它会自动帮你关闭文件,更安全规范。修改后的代码如下:
alist = [] with open("letters.txt") as letters: for line in letters: # 先按冒号分割成编号和字符字符串两部分 parts = line.strip().split(":") # 编号转整数,字符字符串按逗号拆成列表 item_num = int(parts[0]) char_list = parts[1].split(",") # 把组合好的元素加入列表 alist.append([item_num, char_list]) # 输出结果 print(alist)
运行这段代码后,就能得到你预期的结果:
[[1, ['a', 'b', 'c']], [2, ['d', 'e', 'f']]]
内容的提问来源于stack exchange,提问作者Hal
相关产品推荐
相关产品推荐

