如何解决如何处理列表中文本文件中的元素?
因此,我编写了一个从文本文件中提取信息的代码。它包含给定月份的温度,并且应该将其存储在列表中。在我打印时,它是正确的。此外,我实际上需要使用这些提取的数字来计算平均值,最大值和最小值等,但是它将无法正常工作。尝试例如时,我得到TypeError:+不支持的操作数类型:“ int”和“ list”:
sum(oct_1945)/len(oct_1945)
还:
mean_1945=np.mean(oct_1945)
但是我得到:
TypeError: unsupported operand type(s) for /: 'list' and 'int'
TypeError: unsupported operand type(s) for +: 'int' and 'list'
我的完整代码和打印语句如下:
#xtract data for 1945 temperatures
def extract_data(temp_oct_1945):
infile = open('temp_oct_1945.txt','r') #Open temps for 1945
infile.readline() #skip first line
oct_1945=[] #empty ist for temps
for line in infile:
numbers=line.split()
oct_1945.append(numbers)
infile.close()
return oct_1945
oct_1945=extract_data('temp_oct_1945.txt')#define oct_1945
def extract_data(temp_oct_2014):
infile = open('temp_oct_2014.txt','r') #Open temps for 2014
infile.readline() #skip first line
oct_2014=[] #empty ist for temps
for line in infile:
numbers=line.split()
oct_2014.append(numbers)
infile.close()
return oct_2014
oct_2014=extract_data('temp_oct_2014.txt')#define oct_1945
#print statements
"""
1945 temperatures [['7.2','8.1','8.9','11.6','7.7','8.7','6.9'],['5.4','8.8','3.7','3.3','5.2','9.6'],['10.8','5.0','5.4','9.5','5.3','5.8','2.3'],['4.1','6.6','8.2','6.1','4.1'],['2.8','2.1','4.1']]
2014 temperatures [['9.8','11.5','13.3','12.6','10.3','7.5'],['9.3','8.4','5.8'],['6.8','2.3','3.5','7.9','11.8','10.7','9.0'],['5.8','6.8','11.7','10.6','13.1','13.6'],['8.0','3.2']]
"""
解决方法
首先,您拥有两个功能完全相同且名称相同的函数。我们可以做的是只有一个函数,将文件名传递给该函数。我们要做的是将数字作为每行的字符串列表读取,然后将它们连接在一起,并将列表的所有条目映射为float并返回结果列表。
def extract_data(filename):
infile = open(filename,'r') # open file
infile.readline() # skip first line
numbers = [] # stores numbers as strings
for line in infile:
numbers += line.split()
infile.close()
return list(map(float,numbers))
print(extract_data('temp_oct_1945.txt'))
print(extract_data('temp_oct_2014.txt'))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。