gpt4 book ai didi

用于列表的 python numpy.where 函数

转载 作者:太空宇宙 更新时间:2023-11-04 01:25:22 25 4
gpt4 key购买 nike

我有一个 python 程序,其中包含两个列表,如下例所示:

list1=["a","b","c","d"]
list2=[0,1,1,0]

有没有一种优雅的方法来创建第三个列表,它在 list2 为 1 的位置包含 list1 的元素?我正在寻找类似于数组的 numpy.where 函数的东西或更好的优雅方式:

array1=numpy.array(["a","b","c","d"])
array2=numpy.array([0,1,1,0])
array3=array1[array2==1]

是否可以创建一个与 array3 等效的 list3,在此示例中包含“b”和“c”,或者我是否必须强制转换或使用循环?

最佳答案

你可以在这里使用列表理解。

>>> array1 = ["a", "b", "c", "d"]
>>> array2 = [0, 1, 1, 0]
>>> [array1[index] for index, val in enumerate(array2) if val == 1] # Or if val
['b', 'c']

或者使用,

>>> [a for a, b in zip(array1, array2) if b]
['b', 'c']

关于用于列表的 python numpy.where 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18188638/

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