你好,我解释我的问题,我试图通过一个excel文件,其中一列包含用户和其他缺勤恢复每个用户缺勤的总和,但我不能应用循环来做到这一点。我给你看我的密码
在读取excel文件的下面:
print(fichier1)
document1 = xlrd.open_workbook(fichier1)
feuille_1 = document1.sheet_by_index(0)
然后我把我感兴趣的两列放在列表中:
id = []
absence = []
for row in range(1,253):
id.append(feuille_1.cell(row, 2))
absence.append(feuille_1.cell(row, 9)
从这里我被阻止了,因为我不能做一个循环,让我知道在文件中有几个行与同一个用户缺勤的总和,但缺勤的数量不同。所以我试着总结他们的缺席。你知道吗
我遇到的问题是,我不能先将缺勤列转换为浮动列。你知道吗
我的excel文件looks like this。你知道吗
现在我有了我的字典,我想知道如何比较两个字典,因为我想比较两个字典中每个用户缺勤的次数。你知道吗
现在我有了另一个excel文件,我对它做了同样的处理:
id1= row[1]
absence2 = []
id3 = []
for row in range(1,360):
absence.append(float(feuille_1.cell_value(row, 10).replace(",",".")))
id3.append(id1)
result2 = {}
for name2 in set(id4):
result2[name2] = 0
for i in range(len(id3)):
hours2 = float(absence[i])
name2 = id4[i]
result2[name2] += hours2
for name2, hours2 in result2.items():
print(name2 + ":\t" + str(hours2))
我想用这样的代码来比较这两个字典:
for key in result:
if result[key]!=result2[key]:
print("%s not equal"% (key))
但我想知道,如果其中一本词典的用户比另一本词典的用户多,这样做是否有效:
result={"jazi": 1, "juge": 1, "juha": 9, "lebe": 4}
result2={"jazi": 3, "juge": 4, "juha": 1, "lebe": 4, "aba":7, "meze":9}
如果我理解正确的话,在for循环之后会出现这样的情况:
id = ["jazi", "juge", "juha", "juha", "lebe", "lebe"] absence = ["1", "1", "8", "1", "3", "1"]
你想得到这样的东西:
首先,初始化字典:(https://docs.python.org/3/tutorial/datastructures.html#dictionaries) 我使用
set()
函数来排序重复项然后,将小时数添加到相应的名称中:
最后一步,打印结果:(https://docs.python.org/3/library/pprint.html)
pprint的替代方案:
使用zip()和dict压缩的相同解决方案:
相关问题 更多 >
编程相关推荐