2015-09-02 36 views
0

我正在下面的代码中导入labdata.txt。对于语句,如i的值:将在给定参数中添加每个变量。对于每组参数,例如[1,3,4,] [3,5,7],[67,56,56],我的目标是例如添加[1] + [3] + [67] 。然后获得这三个项目的平均值。在Python中导入.txt文件后,在列表[x]中为列表[x]添加特定项目

不清楚的部分是如何采取x = values[:1],然后以某种方式让它在x上添加变量,如上所述的不同参数。

这里是到目前为止的代码:

 
    lab_data = open("labdata.txt", "r") #import text 
    x = 0 # initialize variable 
    y = 0 # initialize variable 
    for aline in lab_data: 
     values = aline.split() 
     values = [int (u) for u in values] 
     print (values) 
     x = values[:1] 
     y = values[1:2] 
     print (x) 
     #print (y) 
     average = 0 
     ui = 0 
     other = 0 
     bs = 0 
     # print (sum(values[:1])) 
    for z in values[:1]: 
     other = (sum(values[:1])) 
     bs = bs + other 
     print (bs)

#print (sum(values[:1])) ui = ui + z average = ui/len(values)#this just gives the avg of x print (average) </pre>
+1

问题很不清楚。 – taesu

+0

你能提供一个样本labdata.txt吗? –

回答

2

让我回答这个非常不清晰的问题
我认为你的问题是:如何从三个不同的列表

lst1 = [1, 3, 4] 
lst2 = [3, 5, 7] 
lst3 = [67, 56, 56] 

avg1 = sum([lst1[0],lst2[0],lst3[0]])/3 
avg2 = sum([lst1[1],lst2[1],lst3[1]])/3 
avg3 = sum([lst1[2],lst2[2],lst3[2]])/3 

print avg1,avg2,avg3 
+0

为什么downvote? –

+0

我不知道为什么downvoted是什么原因,但我很伤心。 – taesu

+0

这是一个广义的解决方案吗? –

0

让得到的平均每个列表具有相同的长度,这是我的解决方案:

lst1 = [1, 2, 3] 
lst2 = [3, 4, 5] 
lst3 = [3, 2, 1] 

# list "lst" will contain the results for every index 
lst =[] 

for i in range(len(lst1)): 
    lst.append(lst1[i]/3 + lst2[i]/3 + lst3[i]/3) 

print lst 
+0

可能想要'len(lst1)'而不是'3',如果你想玩'广义解决方案'游戏? – taesu

0

我猜你想要的东西是一样的东西:

lab_data = open("labdata.txt", "r") #import text 
int_data = [[int(val) for val in line.split()] for line in lines] 

def mean(args): return float(sum(args))/len(args) 
means = [] 
for i in range(0, len(int_data[0])): 
    means.append(mean([row[i] for row in int_data])) 
1

如果您正在使用python3,您可以使用statistics.mean拉链:

lst1 = [1, 3, 4] 
lst2 = [3, 5, 7] 
lst3 = [67, 56, 56] 

from statistics import mean 

a, b, c = map(mean, zip(lst1, lst2, lst3)) 

print(a, b, c) 

对于python2创建自己的均值函数:

from itertools import imap, izip 

def mean(x): 
    return sum(x)/float(len(x)) 

a, b, c = imap(mean, izip(lst1, lst2, lst3)) 

print(a, b, c) 
相关问题