首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python仅遍历最后一个列表值

Python仅遍历最后一个列表值
EN

Stack Overflow用户
提问于 2018-08-03 04:17:21
回答 2查看 139关注 0票数 0

我正在使用一个包来查询我的Google工作表中的单元格列表,并且我希望将不同列表(预测)中的元素传递给Google Sheet列表的值。然而,当我运行我的循环时,它会通过列表中的每个Google表单元格传递预测列表中的最后一个元素。我的for循环设置错误了吗?是因为列表元素的类型吗?

我尝试遵循该库的“更新单元”(批处理)部分:Gspread

以下是两个列表的外观:

forecasting_range:

类型= <class 'gspread.models.Cell'>

代码语言:javascript
复制
[<Cell R2C3 '179'>, <Cell R3C3 ''>,...,<Cell R32C3 ''>]

forecasted_session_column:

类型= <class 'list'>

代码语言:javascript
复制
 ['179', '754.6296810633474', '638.2052995605169',...,'607.1381980696942']

这里是我的循环设置:

代码语言:javascript
复制
for cell in forecasting_range:
    for forecast in forecasted_session_column:
        cell.value = forecast

输出:

代码语言:javascript
复制
[<Cell R2C3 '607.1381980696942'>, <Cell R3C3 '607.1381980696942'>,...,<Cell R32C3 '607.1381980696942'>]
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-03 04:25:49

如果我理解正确的话,您希望单元格1具有预测1,单元格2具有预测2,依此类推。如果是这样,那么使用一个循环,而不是两个循环。

每次执行外部循环时,它都会将forecasting_range中每个单元格的值设置为forecasted_session_column中的每个值。在每次内循环执行结束时,单元格将只包含最后一个值。

代码语言:javascript
复制
for i in range(0,len(forecasting_range)):
    forecasting_range[i].value = forecasted_session_column[i]

这使用一个变量i来计数,跟踪两个列表中的索引,以便它们匹配相同。请注意,此解决方案要求两个列表的长度相同。

票数 2
EN

Stack Overflow用户

发布于 2018-08-03 04:26:57

在您的第二个循环中,您将迭代列表forecasted_session_column。您将每个cell设置为179,然后是下一个值,然后是下一个值,直到它被设置为'607.1381980696942'

IDLE中正在发生的事情的示例:

代码语言:javascript
复制
>>> 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']
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51661538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档