python - 如何在列表列表中添加换行符?
问题描述
我正在尝试在 python 中编写一个函数,该函数读取 csv 文件并返回格式良好的文件。输入文件只是标准的 csv 文件。每条线代表一个人。输出格式应如下所示:
[
("Age", "Gender", "Weight (kg)", "Height (cm)"),
("28", "Female", "58", "168"),
("33", "Male", "", "188")
]
问题是我不知道我该怎么做。我知道我可以遍历列表列表中的每个元素并打印它,但我想像上面一样返回它们。我设法最终得到的唯一格式如下:
[('Age', 'Gender', 'Weight (kg)', 'Height (cm)'), ('28', 'Female', '58', '168'), ('33', 'Male', '', '188')]
万一有人需要查看我的代码(我想它的代码根本就不是很好,但我正在学习):
def read_csv(path):
newlist = []
with open("example.csv", "r") as f:
nr_of_lines = 0
for line in f.readlines():
counter = 0
nr_of_lines += 1
while "," in line:
idx = line.find(",")
entry = line[0:idx]
newlist.append(entry)
line = line[idx+1:]
counter += 1
if "," not in line:
idx2 = line.find("\n")
newlist.append(line[:idx2])
nr_elements_per_line = int(len(newlist)/nr_of_lines)
tuple_list = []
for i in range(nr_of_lines):
tuple_list.append(tuple(newlist[nr_elements_per_line*i:nr_elements_per_line+i*nr_elements_per_line]))
return tuple_list
print(read_csv("example.csv"))
解决方案
您可以使用该pprint
模块进行更好的打印,或者自己打印:
data = [('Age', 'Gender', 'Weight (kg)', 'Height (cm)'),
('28', 'Female', '58', '168'),
('33', 'Male', '', '188')]
print('[')
for inner in data:
print(f"\t{inner}")
print(']')
输出:
[
('Age', 'Gender', 'Weight (kg)', 'Height (cm)')
('28', 'Female', '58', '168')
('33', 'Male', '', '188')
]
与pprint
:
from pprint import pprint
pprint(data)
输出:
[('Age', 'Gender', 'Weight (kg)', 'Height (cm)'),
('28', 'Female', '58', '168'),
('33', 'Male', '', '188')]
推荐阅读
- typescript - TypeScript 根据类型参数返回不同的类型
- sql - 将 1 列拆分为 5 列
- typescript - 如何为每个发出的动作生成随机唯一键?
- c - stat64 一个大(~5GB)文件
- javascript - 即使设置了 --experimental-modules,节点也不支持导入/导出
- python - 数组中元素之间的相对差异
- python - 在 python OpenCV 中调整和填充具有特定高度和宽度的图像会产生错误和不准确的结果
- java - 即使子类已经定义了构造函数,父类是否总是需要默认或无参数构造函数?
- r - 如何在 R 中编码基本对称多项式
- opencv - 姿势估计 - 带有 Scenekit 的 cv::SolvePnP - 坐标系问题