gpt4 book ai didi

python - key 错误 : 0 ; Python removing columns from a list

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

我编写了一个函数,用于从二维列表(从 CSV 上传)中删除列:

#method to remove a column from a list if it does not contain an int
def remove_nonint(list):
for row in list:
for i in range(0, len(row)):
if isinstance(row[i], ( int, long ) ) != True:
del row[i]

但是,当我在列表中运行它时,出现以下错误:

<ipython-input-23-10a39a11efb3> in remove_nonint(list)
3 for row in list:
4 for i in range(0, len(row)):
----> 5 if isinstance(row[i], ( int, long ) ) != True:
6 del row[i]

KeyError: 0

列表[0] 看起来像这样:

{u'2B': 0,
u'3B': 0,
u'AB': 4,
u'BB': 0,
u'CS': 0,
u'G': 1,
u'GIDP': None,
u'H': 0,
u'HBP': None,
u'HR': 0,
u'IBB': None,
u'R': 0,
u'RBI': 0,
u'SB': 0,
u'SF': None,
u'SH': None,
u'SO': 0,
u'lgID': u'NA',
u'playerID': u'abercda01',
u'stint': u'1',
u'teamID': u'TRO',
u'yearID': u'1871'}

编辑:这是我上传 CSV 的方式:

import unicodecsv

with open('lahman-csv_2015-01-24/batting.csv', 'rb') as f:
reader = unicodecsv.DictReader(f)
batting = list(reader)

batting[0]

最佳答案

row 是一个字典,而不是一个列表,因此它不一定在索引 0 处有任何内容。在这种情况下,如您所见,它没有。

迭代字典的常用方法是

对于 some_dict 中的键:或者对于 some_dict.items() 中的键,val:如果您希望检查存储在 key 中的值,并且您想给它一个名称而不是引用 some_dict[val],则后一种形式很有用,这可能很麻烦。

在这种情况下,我会这样做:

for row in list:
for key, val in row.items():
if not isinstance(val, ( int, long ) ):
del row[key]

关于python - key 错误 : 0 ; Python removing columns from a list,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35216009/

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