我有一个元组列表如下:
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']
我没有尝试,但可能是这样的(其中
k
是要删除的键;在您的示例k=0
):解释:您可以使用语法
for e in z if
在列表理解中产生过滤效果;当大于k时,还可以使用(e[0]>k)
的算术值将1减去初始键。你知道吗相关问题 更多 >
编程相关推荐