从两个元组创建列表

2024-09-30 14:24:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个元组:

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

注意:这两个元组都是从元组列表中创建的。你知道吗

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

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]])

Tags: namein编辑示例列表foris错误
3条回答

我相信你在找

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

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

这似乎符合你的例子:

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

我怀疑你想要这样的东西:

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

尽管如此,您可能希望使用extend而不是append,除非您希望dFD在列表中包含一个列表。你知道吗

相关问题 更多 >