Python: Never entering if statement for conversion
本问题已经有最佳答案,请猛点这里访问。
我有一个列表,它告诉我哪些列需要从字节转换为KB。
1 | covert_to_kb_columns=[9, 10, 21, 22, 24] |
我无法正确地实现代码。我想检查一下,如果我使用的是与我不应该进行计算的EDOCX1[1]列表,否则保留数字不变。当存在文件中没有数字,只有一个"",所以我追加了一个零。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | print covert_to_kb_columns for idx, column_number in enumerate(columns_I_am_working_with): print idx #Check if I need to convert number from bytes to KB if idx == [number for number in covert_to_kb_columns]: print"Need to divide by 1024.0" data_to_use.append("{:.1f}".format(float(row[column_number]) / 1024.0)) #Otherwise just append number as is else: try: float(row[column_number]) data_to_use.append(row[column_number]) except ValueError: data_to_use.append('0') |
我的打印声明给出了这个结果:(注意"."是指所有数字都已打印,但我并没有将它们全部写出39个数字)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | [9, 10, 21, 22, 24] 0 1 2 3 . . . 9 10 . . . 21 22 23 24 . . . 39 |
似乎它从未输入print语句来执行转换。我认为问题出在线路上
1 | if idx == [number for number in covert_to_kb_columns]: |
但我不能发现我做错了什么
你所需要做的就是
你的
1 | if idx in covert_to_kb_columns: |
对于