【发布时间】:2014-04-20 14:20:02
【问题描述】:
我目前正在学习 Python 课程,但列表确实存在问题。我试图以最“有效”的方式制作这个程序(使用最少的线路和处理能力)。
到目前为止我有:
import os
import functools
file = input("Input file name(.txt): ")
lstData=[]
if(os.path.isfile(file)):
weather = open(file, 'r')
for line in weather:
line = line.strip()
line = line.split(",")
for i in range(len(line)):
if(line[i].isdigit()):
line[i] = int(line[i])
lstData.append(line)
Jan = ((lstData[0][1:]))
F=c*1.8+32
return(F)
def average(values):
length=len(values)
total_sum=0
for i in range(length):
total_sum+=sum(values)
total_sum =sum(values)
average= float(total_sum/length)
这里是这个项目的规则:
我生成了以摄氏度为单位的任意数量的温度读数,并将这些读数存储在一个名为“weather.txt”的文件中。完成以下内容:
- 创建一个函数,将存储在文件“weather.txt”中的示例天气数据加载到适当的数据结构中——数值数据应转换为适当的数据类型,并将这些值返回给调用函数。
- 创建一个函数来确定此值列表的平均值(本例中为温度数据)。
- 创建一个函数,将温度从摄氏度转换为华氏度。 创建两个函数,可以定位某个值范围内的最高和最低温度。
- 使用上面开发的功能,创建一个程序来完成以下工作:
- 创建一个简单的菜单系统以完成以下操作:
- 提示加载文件
- 如果文件存在,则将数据加载到列表对象中
- 如果文件不存在,提示用户输入真实文件名
- 以摄氏度和华氏度显示所有月份的平均温度
- 显示每个月的最高和最低温度
- 退出
数据:
Jan, -2,-5,-6,-10,2,1,6,-2,3,1,0,1 Feb,-6,-11,-5,-4,-2,-1,0,2,5,3,5,4 Mar,5,8,9,10,13,15,18,10,12,13,11 Apr,15,17,19,15,16,18,19,15,17,14 May,18,19,23,22,25,21,20,19,22,25 June,25,28,27,29,30,35,33,32,31,34,33 Jul,33,32,36,37,40,41,42,45,41,39,37,40 Aug,40,41,421,43,39,45,43,39,39,40,41,42 Sep,38,37,36,33,35,29,28,29,25,23,26,27,30 Oct,27,24,24,20,22,19,18,20,21,18,17,15,18,21 Nov,16,19,14,15,12,15,11,10,9,10,6,11,8,7,5,3 Dec,2,5,6,1,7,8,3,2,-1,0,2,-2,1,0,-2,-4,1,0,-2,-1,0
我不是要求任何人这样做,但如果有人对列表有很好的了解,我将非常感激。
我想做一些函数,可以将字符串从列表的开头取出,然后将字符串的其余部分转换为浮点数或整数。我还没有运气。
我也不能使用任何给定的函数或最大值、最小值、平均值等,必须自己制作。这不是一个真正的大问题。这只是我无法使用列表。如果有区别的话,这将在 Python 3.3/3.4 中。谢谢。
【问题讨论】:
-
欢迎来到 SO。尚不完全清楚您不理解的列表是什么。尽量缩小问题的范围,制定一个更精确、更简短的问题。这样做的目的是双重的; (1) 让问题更容易回答,(2) 让你更好地构建你的想法,甚至可以自己弄清楚。
-
“我正在尝试以最“高效”的方式制作这个程序(使用最少的行数和处理能力)” 一般经验法则:首先让它工作,然后让它更好地工作。
-
顺便说一句,你应该看看 list comprehension,这是 Python 最伟大的特性之一。
-
@Henrik 不,OP 不应该。如果提问者在使用列表方面需要帮助,那么在这里添加列表理解毫无用处。
-
@SimonT 我不同意。列表推导式可能是 Python 中最常用的列表处理方式,为什么不从一开始就学习呢?目标也是使用尽可能少的行,这肯定是为了促进列表理解的使用。
标签: python list file python-3.x