1

整数値の列を解析する次のアルゴリズムがあります。

def getddr(ws):
address = []
col_name = 'C'
start_row = 4
end_row = ws.get_highest_row()+1

range_expr = "{col}{start_row}:{col}{end_row}".format(col=col_name, start_row=start_row, end_row=end_row)

for row in ws.iter_rows(range_string=range_expr):
    print row
    raw_input("enter to continue")
    cell = row[0]
    if str(cell.value).isdigit:
        address.append(cell.value)
    else:
        continue

return address

cell = row[0]これは、「IndexError: タプル インデックスが範囲外です」と言ってクラッシュし、これが何を意味するのかわかりません。行に何が含まれているかを確認するために行を印刷しようとしましたが、空の括弧のセットだけが表示されます。私が欠けているものを知っている人はいますか?

4

1 に答える 1

3

処理しようとしている入力データがないため、何が問題なのかを言うのは簡単ではありません。

しかし、あなたが得たエラーの理由と、どの方向に進む必要があるかを説明することはできます. リストrowには 0 個の要素 ( ) が含まれています。そのため、行 [0] がrow = []ないとは言えません。row[0]最初に変更する必要があるのは、リストの長さを確認し、十分な長さの場合は他のことをいつ行うかです。

for row in ws.iter_rows(range_string=range_expr):
    print row
    raw_input("enter to continue")
    if len(row) > 0:
      cell = row[0]
      if str(cell.value).isdigit:
        address.append(cell.value)
      else:
        continue

それはとにかくあなたがしなければならない最初のステップです。

于 2012-06-21T16:46:18.387 に答える