2017-07-27 62 views
-1

我想比較2個從excel文件導入的python unicode列表來計算它們的變量。比較從excel中導入的2個Python unicode列表

這是我的代碼

import xlrd 
import tkFileDialog 

excel_file = tkFileDialog.askopenfilename(filetypes=[('excelfile', '*.xslx')], title = 'Choose a .xslx file') 

workbook = xlrd.open_workbook(excel_file) 
sheet = workbook.sheet_by_index(0) 

data = [sheet.col_values(i)[1:] for i in range(sheet.ncols) if sheet.col_values(i)[1]=='Difficulty'] 
data2 = [sheet.col_values(i)[1:] for i in range(sheet.ncols) if sheet.col_values(i)[1]=='Decision'] 

print data, data2 

hard_yes = 0 
hard_no = 0 
medium_yes = 0 
medium_no = 0 
easy_yes = 0 
easy_no = 0 

for i in zip(data, data2): 
    if i == ('Hard', 'Yes'): 
     hard_yes = hard_yes + 1 
    elif i == ('Hard', 'No'): 
     hard_no = hard_no + 1 
    elif i == ('Medium', 'Yes'): 
     medium_yes = medium_yes + 1 
    elif i == ('Medium', 'No'): 
     medium_no = medium_no + 1 
    elif i == ('Easy', 'Yes'): 
     easy_yes = easy_yes + 1 
    elif i == ('Easy', 'No'): 
     easy_no = easy_no + 1 

print hard_yes, hard_no, medium_yes, medium_no, easy_yes, easy_no 

我想要的值存儲到變量。當兩個列表都是硬編碼的時候,我可以這樣做,但是當我從excel中導入列表時,我無法存儲這些值。

這是從上面的代碼

[[u'Difficulty', u'Easy', u'Medium', u'Medium', u'Hard', u'Easy', u'Hard', u'Easy', u'Easy', u'Easy', u'Hard', u'Hard', u'Medium', u'Hard', u'Medium', u'Easy', u'Medium', u'Medium', u'Medium', u'Easy', u'Hard']] [[u'Decision', u'Yes', u'No', u'Yes', u'Yes', u'Yes', u'No', u'No', u'No', u'Yes', u'Yes', u'No', u'Yes', u'No', u'Yes', u'Yes', u'No', u'No', u'No', u'Yes', u'No']] 
0 0 0 0 0 0 

編輯輸出:我剛剛意識到這是一個unicdoe列表,如何比較兩個Unicode列表?或者如何正確地將一個unicode列表轉換爲一個字符串列表?

+0

嘗試打印'i'的'爲loop'內更換

for i in zip(data, data2): 

。 – Mel

+0

@打印清單 –

回答

0

問題出在datadata2列表中。它們實際上是列表的列表,而不是元素的列表。因此,使用zip,您正在遍歷1個元素列表。

只是

for i in zip(data[0], data2[0]): 
+0

它的工作原理!非常感謝 –