2017-07-27 9 views
-1

私は、変数を数えるためにExcelファイルからインポートされた2つのPython Unicodeリストを比較しようとしています。2つのインポートされたPythonのUnicodeリストをExcelから比較する

これは、私は、変数に値を格納しようとしている私のコード

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 

EDITから出力された:私はちょうど私は2つのユニコードのリストを比較しないか、これはunicdoeリストであることを認識しますか?または、Unicodeリストを文字列リストに正しくキャストする方法は?

+0

for i in zip(data, data2): 

を交換してください。 – Mel

+0

@Melそれはリスト –

答えて

0

問題はdatadata2のリストです。それらは実際にはリストのリストであり、要素のリストではありません。したがって、zipを使用すると、1つの要素リストを反復処理しています。

ジャスト `ためloop`内の` i`を印刷してみ

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

を印刷しますそれは動作します!どうもありがとう –

関連する問題