Python中如何对列表中子列表的元素进行配对?
解决方法
你当前的代码会把所有配对后的元素直接存入同一个列表,导致输出结构扁平。要得到期望的嵌套结构,需要在遍历外层子列表时,先创建临时列表存储当前子列表的配对结果,再将这个临时列表添加到最终列表中。
修改后的代码
Ci=[[0, 0],[1, 2]] Cb=[[0.1, 0.1],[5, 6]] C1=[] t=2 for j in range(t): # 临时列表存储当前子列表的配对结果 temp_group = [] for i in range(2): pair = [Ci[j][i], Cb[j][i]] temp_group.append(pair) # 将当前组的结果加入最终列表 C1.append(temp_group) print(C1)
输出结果
[[[0, 0.1], [0, 0.1]], [[1, 5], [2, 6]]]
更简洁的写法(列表推导式)
可以用嵌套列表推导式简化代码,利用zip函数自动对应元素配对:
Ci=[[0, 0],[1, 2]] Cb=[[0.1, 0.1],[5, 6]] C1 = [[[ci, cb] for ci, cb in zip(sub_ci, sub_cb)] for sub_ci, sub_cb in zip(Ci, Cb)] print(C1)
外层zip(Ci, Cb)用来配对两个主列表的子列表,内层zip(sub_ci, sub_cb)配对每个子列表里的元素,最终生成嵌套结构的配对结果。
内容的提问来源于stack exchange,提问作者isaacmodi123
相关产品推荐
相关产品推荐

