Python删除指向另一个对象的对象

2024-09-27 19:13:55 发布

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

我有一个元组列表如下:

In [136]: z
Out[136]: 
[(0, array([ 0.71428571,  2.92857143,  1.64285714,  1.07142857])),
 (1, array([ 2.89473684,  1.68421053,  0.52631579,  3.21052632])),
 (2, array([ 1.03571429,  1.5       ,  2.75      ,  2.96428571])),
 (3, array([ 3.35714286,  2.07142857,  3.        ,  1.28571429])),
 (0, array([ 5.234324  ,  3.234324  ,  4.        ,  2.34534534])),
 (4, array([ 0.6,  0.1,  2.6,  0.4]))]

以及如下字符串列表:

In [138]: b 
Out[138]: ['Sam', 'Rachel', 'Mosses', 'Roth', 'Wilhelm']

z中的整数指向b中的字符串。你知道吗

例如,向量(0, array([ 0.71428571, 2.92857143, 1.64285714, 1.07142857]))(0, array([ 5.234324 , 3.234324 , 4. , 2.34534534]))都表示'Sam'(即b[0])。你知道吗

我想从b中删除一个条目。结果,z中指向此删除项的所有向量都将被删除。你知道吗

例如,如果我要删除'Sam',我希望我的新z变成:

In [136]: z
Out[136]: 
[(0, array([ 2.89473684,  1.68421053,  0.52631579,  3.21052632])),
 (1, array([ 1.03571429,  1.5       ,  2.75      ,  2.96428571])),
 (2, array([ 3.35714286,  2.07142857,  3.        ,  1.28571429])),
 (3, array([ 0.6,  0.1,  2.6,  0.4]))]

In [138]: b 
Out[138]: ['rachel', 'mosses', 'roth', 'wilhelm']

Tags: 字符串in列表sam条目整数outarray
1条回答
网友
1楼 · 发布于 2024-09-27 19:13:55

我没有尝试,但可能是这样的(其中k是要删除的键;在您的示例k=0):

z = [ (e[0] - (e[0]>k), e[1]) for e in z if e[0] != k ]

解释:您可以使用语法for e in z if在列表理解中产生过滤效果;当大于k时,还可以使用(e[0]>k)的算术值将1减去初始键。你知道吗

相关问题 更多 >

    热门问题