python - 如何将二维列表中的值 append 到另一个列表并打印它

标签 python list append 2d

我有这个列表:

a = [(741.0, 0), (743.0, 0), (3386.0, 0), (284577.0, 0), (290611.0, 0), (300889.0, 3), (305256.0, 0), (917458.0, 0), (917905.0, 0), (917906.0, 0), (922187.0, 0), (925852.0, 0), (1260021.0, 0), (1377096.0, 0), (1524210.0, 0), (1680657.0, 0), (1692571.0, 0), (1692645.0, 0), (1692647.0, 0), (1713958.0, 0), (1801008.0, 0), (1818975.0, 0), (1858888.0, 0), (1880544.0, 0), (1880898.0, 0), (1880899.0, 0), (1880900.0, 0), (1881062.0, 0), (1881073.0, 0), (1881240.0, 0), (1881433.0, 0), (1881434.0, 0), (1881435.0, 0), (1881436.0, 0), (1881438.0, 0), (1958358.0, 0), (1958478.0, 0), (1958479.0, 0), (1958481.0, 0), (1967310.0, 0)]

我想创建 2 个列表...第一个列表将包含上面每个列表中的第一个值,b[0] = [741.0,743.0,3386.0,....] 并且第二个将具有第二个值,a = [(j,k,l),(j1,k1,l1),...]。我想用 for 来做这件事,这样如果 a = [(j,k,l),(j1,k1,l1),...] 我会创建 3 个列表而不是 2.. .我有这段代码,但它不能按我想要的方式工作:

代码示例:

b = []
for i in range(N):
    b.append([])
    for j in range(R):
        b[i].append([])
        for k in range(0,M,2):
            b[i][j].append(j - k)
print b

N = 2,R = 40,M = 80 (2x40)

最佳答案

更Pythonic的方法在于使用列表理解:

for i in range(len(a[0])):
    b.append([elt[i] for elt in a])

关于python - 如何将二维列表中的值 append 到另一个列表并打印它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37298085/

相关文章:

python - 如何制作基于文本的界面(TUI/TLI)来监控 OpenFOAM 求解器日志文件?

python - sendgrid python api取消订阅和管理列表标签

java - 我可以列出给定包中的资源吗?

javascript - jQuery [button.class] 未检测到添加带有按钮的行

python - 如何遍历 .dat 文件并将每组行的特定列 append 到数组

python - 为什么我会收到此错误? '_io.TextIOWrapper' 对象没有属性 'append'

python - 类型错误:不可散列的类型:来自 pandas 的 pd.factorize() 的 'list'

vb.net - 调用 Web 服务函数从 Windows 窗体返回列表(字符串)

c# 泛型列表

python - Matplotlib 完全覆盖补丁