Skip to main content
 首页 » 编程设计

python之从两个元组的元组创建列表

2025年05月04日19cmt

我有两个元组的元组:

dCF3t=((((1.90683376789093, -44705.1875), (1.90689635276794, -44706.76171875)),),) 
dU1t=((((0.0, 0.00244894321076572), (0.00249999994412065, 0.00782267469912767)),),) 

我需要用每个元组第二列的值创建一个列表:

dFD=[] 
dFD.append([x[1] for x in dU1t, y[1] for y in dCF3t]) 

例子:

dFD=[[0.00244894321076572,-44705.1875],[0.00782267469912767,-44706.76171875]] 

但它给了我这个错误:name 'y' is not defined

P.S.:两个元组都是从元组列表的列表中创建的。

编辑: 为避免元组末尾的 ,),),请考虑:

dCF3t=[[((1.90683376789093, -44705.1875), (1.90689635276794, -44706.76171875))]] 
dU1t=[[((0.0, 0.00244894321076572), (0.00249999994412065, 0.00782267469912767))]] 

解决方案:

    dFD=[] 
    for i in range(0, len(dU1t[0][0])): 
        dFD.append([dU1[0][0][i][1],dCF3[0][0][i][1]]) 

请您参考如下方法:

我相信你正在寻找

dFD=[[x[1],y[1]] for x,y in zip(dU1t[0], dCF3t[0])] 

一般来说,你应该尽量避免追加东西;它通常会变慢,因为它可能需要将整个列表复制到内存中的新位置。在您的示例中,append 语句本质上是微不足道的,因此它不会真正花费您太多,但它也完全没有必要。