python - Python For 循环仅将最后一个值附加到列表
问题描述
我有一个循环,它将一个列表的值设置为另一个列表的值,虽然我能够使用当前代码实现这一点,但它只是将最后一组值附加到我的列表中。我的设置中可能有什么可能导致这种行为?
这是我的数据格式:
print(df_full_raw_format) # Data Set being set to worksheet_range values
<class 'pandas.core.frame.DataFrame'>
b_clicks b_cpc date_string
0 b_clicks b_cpc date_string
1 72 2.43 2018-01-01
2 232 2.8 2018-01-02
3 255 2.6 2018-01-03
4 249 2.65 2018-01-04
5 202 2.86 2018-01-05
这是我的worksheet_range
格式:
[<Cell R1C1 ''>, <Cell R2C1 ''>, <Cell R3C1 ''>,....]
这是我的 for 循环函数:
update_raw_data_sheet(df_full_raw_format)
def update_raw_data_sheet(data_set):
for col_val, col_name in zip(gs_columns, columns):
updated_values = [] # List storing the combined list values
column_data = data_set[col_name].values.tolist(); # col_name = ['b_clicks', 'b_cpc', 'date_string']
print("COLUMN DATA")
print(column_data)
worksheet_range = worksheet.range(1, col_val, len(column_data), col_val); # [row_start, col_start, row_end, col_end]
print(worksheet_range)
for cell, data in zip(worksheet_range, column_data):
cell.value = data # <Cell R1C1 '2018-01-01'>...
print(cell)
updated_values.append(cell)
print(updated_values)
这是控制台:
(Loop 1)
COLUMN DATA
['date_string', '2018-01-01', '2018-01-02', '2018-01-03', ...] # print(column_data)
[<Cell R1C1 ''>, <Cell R2C1 ''>, <Cell R3C1 ''>,...] # print(worksheet_range)
<Cell R1C1 'date_string'> # print(cell)
<Cell R2C1 '2018-01-01'>
<Cell R3C1 '2018-01-02'>
<Cell R4C1 '2018-01-03'>
... (Loop 2)
COLUMN DATA
['b_clicks', '72', '232', '255', ...]
[<Cell R1C2 ''>, <Cell R2C2 ''>, <Cell R3C2 '', ...]
<Cell R1C2 'b_clicks'>
<Cell R2C2 '72'>
<Cell R3C2 '232'>
... (Loop 3)
COLUMN DATA
['b_cpc', 2.43, 2.8,...]
[<Cell R1C3 'b_cpc'>, <Cell R2C3 '2.43'>, <Cell R3C3 '2.8'>, ...]
<Cell R1C3 'b_cpc'>
<Cell R2C3 2.43>
<Cell R3C3 2.8>
(Post-Loop)
[<Cell R1C3 'b_cpc'>, <Cell R2C3 2.43>, <Cell R3C3 2.8>, ...] # print(updated_values)
它错过了前两个循环的值,但完美地捕获了数组中的第三个。
解决方案
updated_values = []
应该在def
语句之后的循环之外,否则您会覆盖在每次迭代中添加到列表中的值。
def update_raw_data_sheet(data_set):
updated_values = []
# ...
推荐阅读
- c# - 查找姓名并添加句子
- javascript - 更改文本框的模糊属性值
- python - API json集合的嵌套while循环
- jpa - java.lang.IllegalStateException:没有显式选择,无法确定隐式选择
- php - 划分 PHP 时间 (h:i)
- c# - 在多对多映射实体查询上使用 .Include() 时,Entity Framework Core 返回所有嵌套的子级
- html - 如何减小包含输入的离子项的宽度
- javascript - 如何为 ngx-bootstrap typeahead 添加向上/向下滚动?
- c# - 如何编写正则表达式模式以在c#中获取字符串的子字符串
- java - 尝试在 Java 中使用 HttpClient 发送 HTTP Post GraphQL 查询时出现 HTTP 400