根据文本信息,我需要找到每天最低和最高潮位(米)并将其打印到屏幕上每天。
Thursday 4 January,11.58,0.38 meters
Thursday 4 January,16.95,0.73 meters
Thursday 4 January,23.68,0.02 meters
Friday 5 January,6.48,0.83 meters
Friday 5 January,12.42,0.33 meters
Friday 5 January,17.92,0.75 meters
Saturday 6 January,0.5,0.02 meters
Saturday 6 January,7.18,0.85 meters
Saturday 6 January,13.2,0.29 meters
Saturday 6 January,18.82,0.75 meters
期望的结果是这样的:
Thursday 4 January: 0.02 meters at lowest and 0.73 meters at highest
friday 5 January: 0.33 meters at lowest and 0.83 meters at highest
我设法调用txt文件并以所需格式打印,但我不知道如何将其排序为该格式。
aFile = open('C:\\Users\\User\\PycharmProjects\\Tides.txt')
for line in aFile:
line = line.strip()
line = line.replace('meters', '')
print(f": {[line]}")
请帮忙,python初学者在这里
使用csv
和collections
模块。
例如:
import csv
from collections import defaultdict
result = defaultdict(list)
with open(filename) as infile:
reader = csv.reader(infile)
for line in reader:
result[line[0]].append(float(line[2].strip("meters")))
for k, v in result.items():
print("{}: {} meters at lowest and {} meters at highest".format(k, min(v), max(v)))
输出:
Saturday 6 January: 0.02 meters at lowest and 0.85 meters at highest
Friday 5 January: 0.33 meters at lowest and 0.83 meters at highest
Thursday 4 January: 0.02 meters at lowest and 0.73 meters at highest
试试这个 :
aFile = open('tides.txt')
d = {}
for line in aFile:
line = line.strip()
line = line.replace('meters', '')
# After this split the line wrt ,
line = line.split(',')
# Assign the day as key and the the tide height as value inside value list
if line[0] in d:
d[line[0]].append(line[-1])
else:
d[line[0]] = [line[-1]]
for k in d:
print(k, ":", min(d[k]), " meters at lowest and ", max(d[k]), " meters at highest")
输出:
Thursday 4 January : 0.02 meters at lowest and 0.73 meters at highest
Friday 5 January : 0.33 meters at lowest and 0.83 meters at highest
Saturday 6 January : 0.02 meters at lowest and 0.85 meters at highest