比较excel中的2个导入的python unicode列表

时间:2017-07-27 07:30:42

标签: python python-2.7 xlrd

我试图比较从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列表正确地转换为字符串列表?

1 个答案:

答案 0 :(得分:0)

问题在于datadata2列表。它们实际上是列表列表,而不是元素列表。因此,使用zip,您将迭代1个元素列表。

只需替换

for i in zip(data, data2):

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