例如,我有两个相同长度的列表:
a = [[1,2],[2,[3,3],[4,[5,6]] b = [1,2,3,1]
func(a,b,1) = [[1,6]] func(a,2) = [[2,3]] func(b,2) = [2,2]
该函数的作用是返回一个元素的列表,其列表b中相同索引的相应元素等于第三个参数.
在Matlab中,我将做一些像(b == 1),a(b == 2),b(b == 2)一样简单的事情.在Python中实现这一目标的最有效方法是什么?
解决方法
如果你想要非常类似Matlab的功能,你可以使用numpy:
>>> import numpy >>> a = [[1,6]] >>> b = [1,1] >>> a = numpy.array(a) >>> b = numpy.array(b) >>> a[b==1] array([[1,6]]) >>> a[b==2] array([[2,3]]) >>> b[b==2] array([2,2])
如果做不到这一点,我可能只是使用列表理解:
>>> [i for i,j in zip(a,b) if j == 1] [[1,6]] >>> [i for i,b) if j == 2] [[2,3]] >>> [i for i,j in zip(b,b) if j == 2] [2,2]
>>> def func(a,x): ... return [i for i,b) if j == x] ... >>> func(a,2) [[2,3]] >>>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。