Python 仅遍历最后一个列表值
Python Looping through only Last List Value
我正在使用一个包来查询我的 Google Sheet 中的单元格列表,并且我希望将不同列表(预测)中的元素传递给Google Sheet 列表。但是,当我 运行 我的循环时,它将我预测列表中的最后一个元素传递到列表中的每个 Google Sheet 单元格。我是否错误地设置了 for 循环?是因为列表元素类型吗?
我试着按照图书馆的 "Updating Cells"(批量)部分:Gspread
两个列表如下所示:
forecasting_range:
类型 = <class 'gspread.models.Cell'>
[<Cell R2C3 '179'>, <Cell R3C3 ''>,...,<Cell R32C3 ''>]
forecasted_session_column:
类型 = <class 'list'>
['179', '754.6296810633474', '638.2052995605169',...,'607.1381980696942']
这是我的循环设置:
for cell in forecasting_range:
for forecast in forecasted_session_column:
cell.value = forecast
输出:
[<Cell R2C3 '607.1381980696942'>, <Cell R3C3 '607.1381980696942'>,...,<Cell R32C3 '607.1381980696942'>]
如果我没理解错的话,您希望单元格 1 有预测 1,单元格 2 有预测 2,依此类推。如果是这样,则使用一个循环,而不是两个。
每次执行外循环时,它都会将 forecasting_range
中每个单元格的值设置为 forecasted_session_column
中的每个值。在每个内部循环执行结束时,单元格将只包含最后一个值。
for i in range(0,len(forecasting_range)):
forecasting_range[i].value = forecasted_session_column[i]
这使用变量 i
来计数并跟踪两个列表中的索引,以便它们匹配相同。请注意,此解决方案要求两个列表的长度相同。
在您的第二个循环中,您将遍历列表 forecasted_session_column
。您将每个 cell
设置为 179
,然后是下一个值,然后是下一个值,直到设置为 '607.1381980696942'
.
IDLE 中正在发生的事情的示例:
>>> cells = [i for i in range(10)]
>>> values = ['a', 'b', 'c']
>>> for cell in cells:
for value in values:
cells[cell] = value
>>> cells
['c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c']
我正在使用一个包来查询我的 Google Sheet 中的单元格列表,并且我希望将不同列表(预测)中的元素传递给Google Sheet 列表。但是,当我 运行 我的循环时,它将我预测列表中的最后一个元素传递到列表中的每个 Google Sheet 单元格。我是否错误地设置了 for 循环?是因为列表元素类型吗?
我试着按照图书馆的 "Updating Cells"(批量)部分:Gspread
两个列表如下所示:
forecasting_range:
类型 = <class 'gspread.models.Cell'>
[<Cell R2C3 '179'>, <Cell R3C3 ''>,...,<Cell R32C3 ''>]
forecasted_session_column:
类型 = <class 'list'>
['179', '754.6296810633474', '638.2052995605169',...,'607.1381980696942']
这是我的循环设置:
for cell in forecasting_range:
for forecast in forecasted_session_column:
cell.value = forecast
输出:
[<Cell R2C3 '607.1381980696942'>, <Cell R3C3 '607.1381980696942'>,...,<Cell R32C3 '607.1381980696942'>]
如果我没理解错的话,您希望单元格 1 有预测 1,单元格 2 有预测 2,依此类推。如果是这样,则使用一个循环,而不是两个。
每次执行外循环时,它都会将 forecasting_range
中每个单元格的值设置为 forecasted_session_column
中的每个值。在每个内部循环执行结束时,单元格将只包含最后一个值。
for i in range(0,len(forecasting_range)):
forecasting_range[i].value = forecasted_session_column[i]
这使用变量 i
来计数并跟踪两个列表中的索引,以便它们匹配相同。请注意,此解决方案要求两个列表的长度相同。
在您的第二个循环中,您将遍历列表 forecasted_session_column
。您将每个 cell
设置为 179
,然后是下一个值,然后是下一个值,直到设置为 '607.1381980696942'
.
IDLE 中正在发生的事情的示例:
>>> cells = [i for i in range(10)]
>>> values = ['a', 'b', 'c']
>>> for cell in cells:
for value in values:
cells[cell] = value
>>> cells
['c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c', 'c']