如何从两个列表L1、L2创建指定格式的numpy数组
整数频率统计转3×3数组实现方案
原代码错误说明
- 循环语法不符合Python规范,不存在
for num in L1 and count in L2这种同时遍历两个列表的写法 - 赋值逻辑
a1[:num] = L2[:count]会直接截断覆盖数组,完全不符合按指定位置填充频率的需求
实现逻辑
- 先初始化长度为9的一维数组,默认值全为0,对应1~9每个整数的初始频率
- 配对遍历L1(作为索引的整数值)和L2(对应频率),将频率写入一维数组的对应位置:整数n对应数组下标为
n-1,适配Python从0开始的索引规则 - 将长度为9的一维数组按每3个元素为一组拆分,拼接为3×3的二维数组即可得到目标结果
完整可运行代码
# 输入参数 L1 = [1,3,4,5,6,7,8,9] L2 = [6,7,1,2,8,4,2,1] # 初始化1-9对应频率数组,默认值为0 freq_list = [0] * 9 # 按指定位置填充频率 for num, count in zip(L1, L2): freq_list[num - 1] = count # 拆分为3*3二维数组 A1 = [freq_list[i:i+3] for i in range(0, 9, 3)] print(A1) # 输出结果:[[6, 0, 7], [1, 2, 8], [4, 2, 1]]
内容的提问来源于stack exchange,提问作者Mercredi
相关产品推荐
相关产品推荐

