У меня есть текстовый файл, содержащий 8 столбцов, например
100 40 37 98 47 55 75 67
50 84 93 67 85 90 42 57
68 95 74 75 87 95 32 86
Для моей функции мне нужно найти средние значения и т. д. для всех столбцов, когда указано. Поэтому для этого мне нужно уметь работать со столбцами, и я не знаю, как преобразовать все столбцы в списки.
f=open(file,"r")
lines=f.readlines()
result=[]
for i in lines:
result.append(i.split(' ')[1])
f.close()
У меня есть только это, чтобы извлечь 1 столбец, но я был бы признателен, если бы кто-нибудь помог мне извлечь каждый столбец. Мой учитель хочет, чтобы мы использовали чистый Python, поэтому никаких дополнений, таких как panda или numpy. Спасибо
У Numpy также есть функции, которые сделают это очень простым, если вы готовы выйти за пределы «чистого» python.
Я считаю, что мой учитель хочет, чтобы мы использовали чистый питон
Для вопросов домашнего задания всегда следует указывать, что это вопрос домашнего задания и соответствующие ограничения.
OP указал домашнее задание и ограничения в исходном вопросе: «Мой учитель хочет, чтобы мы использовали чистый python, поэтому никаких дополнений, таких как panda или numpy». -- довольно ясно.






Я бы рекомендовал извлечь строки, а затем перенести полученный список списков:
with open(filename) as f:
columns = list(zip(*(map(int, row.split()) for row in f)))
Я могу помочь объяснить любую часть этого, если вы хотите.
f = open(filename,"r")
lines = []
for line in f:
lines.append(map(int, line.strip().split()))
f.close()
Теперь у нас есть список списков целых чисел:
print(lines)
# [[100, 40, 37, 98, 47, 55, 75, 67], [50, 84, 93, 67, 85, 90, 42, 57], [68, 95, 74, 75, 87, 95, 32, 86]]
Преобразование списков строк в списки столбцов называется «транспонированием», поэтому, используя этот ответ Транспонировать список списков, мы можем получить результат:
result = map(list, zip(*lines))
print(result)
# [[100, 50, 68], [40, 84, 95], [37, 93, 74], [98, 67, 75], [47, 85, 87], [55, 90, 95], [75, 42, 32], [67, 57, 86]]
Это легко выполнимо на питоне, однако я предлагаю вам взглянуть на
pandas.