gpt4 book ai didi

python 列表列分割

转载 作者:太空宇宙 更新时间:2023-11-03 16:09:22 24 4
gpt4 key购买 nike

有人可以帮我吗?这是一个复杂的问题,但我会尝试解释它。我需要为所有数据插入两个值 Depths(Z) 到 Speed(v)

x= [55,55,55,,44,44,44,,33,33,33,] (coordinates)
z =[10,5,0,10,7,0,10,9,0] (depths)
v= [20,21,22=,23,24,25,26,27,28] (speed)

结果

DEPTHS   SPEED(55)        SPEED(44)              SPEED(33)     
10 20 23 26
6 21.5(interp) 24.5(interp) 27.5 (interp)
0 22 25 28

我做了什么:

import numpy as np
X_list=[55,55,55,44,44,44,33,33,33]
Z_list=[10,5,0,10,7,0 10,9,0]
V_list=[20,21,22,23,24,25,26,27,28]
x = np.linspace(min(Z_list),max(Z_list),num = 3) #(Find min and max values in all list, and put step
d=np.interp(x, Z_list, V_list) # interpolation for interesting depths
zipped = list(zip(x,d))
print (*zipped, sep="\n")

实际上我从第一个坐标中获取了信息

 DEPTHS    SPEED(55)    SPEED (44)      SPEED(33)    

(10 20) ? ?
(6 21.5) ? ?
(0 22) ? ?

但我不知道如何从另一个坐标获取其他值。我不知道如何将坐标链接到速度和深度并将其放入列中。

最佳答案

一种可能性是创建一个字典,将每个 X 坐标映射到具有该 X 坐标的元组列表:

>>> tupus = [ (1,0,1), (1,13,4), (2,11,2), (2,14,5) ]
>>> from collections import defaultdict
>>> tupudict = defaultdict( lambda: [] ) # default val for a key is empty list
>>> for tupu in tupus: tupudict[tupu[0]].append(tupu)
...
>>> tupudict[1]
[(1, 0, 1), (1, 13, 4)]
>>> tupudict[2]
[(2, 11, 2), (2, 14, 5)]

然后,您可以按键处理字典键,或者将值转储到元组列表的列表中,或其他任何内容。

编辑以添加对有关仅拆分列表的评论的答案:

>>> from collections import defaultdict
>>> mylist = [11,11,11,11,12,12,15,15,15,15,15,15,20,20,20]
>>> uniquedict = defaultdict( lambda: [] )
>>> for n in mylist: uniquedict[n].append(n)
...
>>> uniquedict
defaultdict(<function <lambda> at 0x00000000033092E8>, {20: [20, 20, 20], 11: [11, 11, 11, 11], 12: [12, 12], 15: [15, 15, 15, 15, 15, 15]})
>>> uniquedict[11]
[11, 11, 11, 11]

请注意,对于输入列表中的每个 n,uniquedict[n] 现在是输入列表中所有 n 的列表。

关于python 列表列分割,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39426003/

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