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

如何将numpy拆分后的列表元素分配给不同独立变量名?

解决方案

现有代码与输出

import numpy as np
listA = [11, 18, 19, 21, 29, 46]
length = len(listA)

splits = np.array_split(listA, length)
i = 0
for array in splits:
    print("test" + str([i]))
    print(list(array))
    i += 1

输出:

test[0]
[11]
test[1]
[18]
test[2]
[19]
test[3]
[21]
test[4]
[29]
test[5]
[46]

需求

将每个拆分后的单元素列表赋值为test0到test5的变量,替代打印操作,方便后续代码调用。


方法1:动态创建全局变量(不推荐)

通过globals()字典可以直接生成命名变量,但这种方式会污染全局命名空间,不利于代码维护:

import numpy as np

listA = [11, 18, 19, 21, 29, 46]
splits = np.array_split(listA, len(listA))

# 循环生成test0-test5变量
for idx, arr in enumerate(splits):
    globals()[f'test{idx}'] = list(arr)

# 验证变量
print(test0)  # 输出 [11]
print(test5)  # 输出 [46]

方法2:使用字典统一管理(推荐)

更规范的做法是用字典存储这些变量,既避免命名混乱,又方便批量操作:

import numpy as np

listA = [11, 18, 19, 21, 29, 46]
splits = np.array_split(listA, len(listA))

test_vars = {}
# 将拆分结果存入字典,键为test0-test5
for idx, arr in enumerate(splits):
    test_vars[f'test{idx}'] = list(arr)

# 调用示例
print(test_vars['test2'])  # 输出 [19]
print(test_vars['test4'])  # 输出 [29]

注意事项

  • 动态创建变量虽然能实现需求,但会降低代码可读性,后续调试和扩展难度更高。
  • 字典存储的方式更符合Python编码规范,尤其当需要处理的变量数量不确定时,灵活性更强。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 15:35:28