You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

循环提取xarray信息时遇TypeError:列表索引不能为字符串

问题分析

你遇到的错误是:类型错误:列表的索引必须是整数或切片,不能是字符串,原因是你把dta初始化为了列表(dta = []),但在循环中尝试用字符串(如'first'、'second')作为索引给它赋值——列表只支持整数/切片类型的索引,自然会报错。

修复代码

将dta初始化为字典(dta = {}),字典支持用字符串作为键来存储键值对,修改后的完整代码如下:

import numpy as np
import pandas as pd
import xarray as xr

samples = {}
samples['first'] = [1,2]
samples['second'] = [3,4]

categories = list(samples.keys())

# 改为字典初始化
dta = {}

for i in range(len(categories)):
    dta[categories[i]] = samples[categories[i]]

print(dta)  # 输出: {'first': [1, 2], 'second': [3, 4]}
更简洁的实现方式

如果只是复制samples的键值对,完全不需要循环,直接用字典的copy()方法即可:

dta = samples.copy()

如果需要对每个值做额外处理,也可以用字典推导式:

dta = {key: samples[key] for key in categories}

内容的提问来源于stack exchange,提问作者Stata_user

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 07:21:23