有没有办法以更简洁的方式完成下面的内容?如果我有很多值,那么我的脚本将变得非常难以理解。
当前代码
import xlrd
filename = r'H:\Book1.xls'
wb = xlrd.open_workbook(filename)
sh1 = wb.sheet_by_index(0)
data = [sh1.row_values(row) for row in range(sh1.nrows) if 1 in sh1.row_values(row) or 9 in sh1.row_values(row) ]
print(data)
代码结果
[[1.0, 2.0, 3.0, '', 4.0, '', 6.0], ['', '', '', '', 9.0, '', '']]
所需语法
data = [sh1.row_values(row) for row in range(sh1.nrows) if 1,9 in sh1.row_values(row)]
此外,是否可以传入列表或包含1,9等的对象?
答案 0 :(得分:5)
使用套装:
if {1,9}.intersection(sh1.row_values(row))