簡體   English   中英

Python僅遍歷最后一個列表值

[英]Python Looping through only Last List Value

我正在使用一個包來查詢Google表格中的單元格列表,並且希望將其他列表(預測)中的元素傳遞給Google表格列表的值。 但是,當我運行循環時,它將通過列表中的每個Google表格單元格傳遞預測列表中的最后一個元素。 我是否錯誤地設置了for循環? 是因為列表元素類型?

我嘗試遵循該庫的“批量更新”部分: 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']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM