gpt4 book ai didi

python - 赋值时KeyError

转载 作者:太空宇宙 更新时间:2023-11-03 18:10:13 24 4
gpt4 key购买 nike

我正在尝试将 .csv 数据输入 python。

这就是我的代码:

import csv

revenue = {}

prices = []
for i in range(1,21):
prices.append(i)
prices = tuple(prices) #convert to tuple to make immutable and faster

with open("test.csv") as file_handle:
file_reader = csv.reader(file_handle)
file_handle.readline()
file_handle.readline() #skip first 2 lines due to column header titles
for row in file_reader:
revenue[prices] = row[1] #assign revenue at each price-point

print revenue

print revenue[10]

这就是 .csv 数据的样子,或者我的输入。

0.01    1397371
0.02 1350610
0.03 1306431
0.04 1136959
0.05 1106950
0.06 1064727
0.07 1037497
0.08 1030768
0.09 976552
0.1 963091
0.11 949641
0.12 917551
0.13 884734
0.14 878675
0.15 775261
0.16 765643
0.17 756057
0.18 733458
0.19 723077
0.2 654178

第一列是价格,第二列是收入。因为我选择的价格总是相同的,所以我实际上忽略了数据,只是创建了一个整数形式的价格列表,我将其转换为一个元组(因为我读到如果数据是不可变的,元组将处理得更快) .

问题:如果我打印收入[10],我想看到 963091。相反,我得到 KeyError:20。

当我打印收入时,我期望打印所有价格和相关收入,相反,我打印整个价目表,然后是列表中最后一个价格的最终收入值 (0.2),654178。

我是Python新手,所以我对菜鸟问题表示歉意,我一直在阅读并试图解决这个问题,但我仍然在挣扎 - 也欢迎对我的方法提出任何建议,我可以使用我提供的所有帮助可以获得。

提前致谢!

最佳答案

revenue[prices] = row[1] 不是插入 row 的值(这是一个单项列表),而是使用元组本身。

>>> revenue[prices] = ''
>>> revenue
{(1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20): ''}
<小时/>
with open("test.csv") as file_handle:
file_reader = csv.reader(file_handle)
file_handle.readline()
file_handle.readline() #skip first 2 lines due to column header titles
for row in file_reader:
revenue[int(float(row[0].split()[0]) * 100)] = row[0].split()[1] #assign revenue at each price-point

要将行转换为价格和收入,请获取第一项(唯一的),将其拆分为价格和收入,并将小数价格转换为整数。

关于python - 赋值时KeyError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26127678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com