【发布时间】:2015-10-13 12:41:19
【问题描述】:
下面是我的代码,用于将我的列表分隔为列表列表,然后如果这些列表中的值匹配,则打印单词“hello”......但是我在让它工作时遇到了一些问题。据我所知,所有语法都是正确的,只是输出不起作用。
import csv
import operator
import itertools
import matplotlib.pyplot as plt
with open('data.txt', 'r') as f:
csv_input = csv.reader(f, delimiter=' ', skipinitialspace=True)
headers = next(csv_input)
counter = 0
i = 1
for k, g in itertools.groupby(csv_input,key=operator.itemgetter(3)):
row = []
for entry in g:
entry = [float(e) for e in entry]
row.append(entry)
counter = counter+1
i = i+1
#print(row) #(not necessary to see the results hence commented out)
if counter == 1:
row1 = row
else:
row2 = row
for i in range(1, len(row1)):
hi = row1[i][0]
for j in range(1,len(row2)):
if row2[j][0] == hi: #this clause doesnt work
print('hello')
counter=1
row1=row
我在这里所做的是将第一个列表中的第一个值与下一个列表的第一行中的第二个值进行比较。然后,我想将第二个列表的第一行的第一个值与下一个列表的第一行进行比较,依此类推......(我知道这看起来很混乱!),如果这些值相同,然后它会绘制一条线,但为简单起见,我们只说它会打印('hello'),因为代码一直运行到标记为'#this Clause doesn't work'的地方
任何帮助将不胜感激!提前致谢
【问题讨论】:
-
您可以提供输入文件的样本
-
您循环遍历
row1的所有元素,每次都首先重新分配给hi。hi在循环结束时将始终为row1[ -1 ][ 0 ]。