# First thing is to get a set of your query strings.
queries = set(argv[1:])
# If using optparse or argparse, queries = set(something_else)
hlo = []
for i in range(len(sh.col_values(8))):
if sh.cell(i, 1).value in queries:
hlo.append(sh.cell(i, 8).value)
=== конец ответа на вопрос ===
В сторону: OP использует xlrd ... вот несколько советов по производительности.
Не имеет большого значения в этом простом примере, но если вы собираетесь многократно получать доступ к значениям ячеек на основе координат, вы можете добиться большего успеха, используя Sheet.cell_value (rowx, colx) вместо Sheet.cell (rowx, colx) .value, который строит объект Cell на лету:
queries = set(argv[1:])
hlo = []
for i in range(len(sh.nrows)): # all columns have the same size
if sh.cell_value(i, 1) in queries:
hlo.append(sh.cell_value(i, 8))
или вы можете использовать понимание списка вместе с методом Sheet.col_values (colx):
hlo = [
v8
for v1, v8 in zip(sh.col_values(1), sh.col_values(8))
if v1 in queries
]