gpt4 book ai didi

Python 列表推导式、子列表行和列

转载 作者:行者123 更新时间:2023-12-01 08:26:22 24 4
gpt4 key购买 nike

嗨,我有我的 Python 列表 A,在列表 c 上我只扩展了两列,我如何限制行以使列表 C 只包含第 2 行和第 3 行

期望值

[[2,1],
[3,0]]

有没有办法通过列表推导来做到这一点

A = [[0,1,4,5,3],
[1,0,2,5,4],
[4,2,0,1,5],
[1,3,1,0,3],
[3,4,5,3,0]]

c=[]
print ('Print A')
print('\n'.join([''.join(['{:4}'.format(item) for item in row]) for row in A]))

c.extend( [[x[1],x[3]] for x in A])

print ('Print c')

print('\n'.join([''.join(['{:4}'.format(item) for item in rrr]) for rrr in c]))

最佳答案

是的,选择您需要的行/列索引:

A = [[0,1,4,5,3],
[1,0,2,5,4],
[4,2,0,1,5],
[1,3,1,0,3],
[3,4,5,3,0]]

rows = [2,3]
cols = [1,3]

C = [[A[i][j] for j in cols] for i in rows]

结果:

>>> C
[[2, 1], [3, 0]]

也许稍微好一点,因为它避免每次计算 A[i] ,只是为了命名行而添加另一个理解:

C = [[row[j] for j in cols] for row in (A[i] for i in rows)]

这是一个基本的 Python 方法。如果您有大矩阵和索引列表,我认为 numpy 解决方案会更快。

关于Python 列表推导式、子列表行和列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54219546/

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