2024-04-25 10:19:32 发布
网友
我有一个用Python表示连通图的列表。这个列表看起来像一个n*2矩阵
example = [[1, 2], [1, 5], [1, 8], [2, 1], [2, 9], [2,5] ]
我要做的是找到列表中第一个元素的值,其中第二个元素等于用户定义的值。例如:
在Matlab中,我可以使用
output = example(example(:,1)==input, 2);
但我想用Python(以最具Python风格和效率的方式)来实现这一点
您可以使用列表理解作为过滤器,如下所示
>>> example = [[1, 2], [1, 5], [1, 8], [2, 1], [2, 9], [2,5]] >>> n = 5 >>> [first for first, second in example if second == n] [1, 2]
exemple = [[1, 2], [1, 5], [1, 8], [2, 1], [2, 9], [2,5] ] foundElements = [] ** input = [...] *** List of Inputs for item in exemple: if item[1] in input : foundElements.append(item[0])
您可以非常轻松地使用Python函数映射和过滤器:
>>> example = [[1, 2], [1, 5], [1, 8], [2, 1], [2, 9], [2,5] ] >>> n = 5 >>> map(lambda x: x[0], filter(lambda x: n in x, example)) [1,2]
使用lambda可以定义匿名函数。。。 语法:
lambda arg0,arg1...: e
arg0,arg1。。。是函数的参数,e是表达式。 它们主要在map、reduce、filter等函数中使用lambda函数
您可以使用列表理解作为过滤器,如下所示
您可以非常轻松地使用Python函数映射和过滤器:
使用lambda可以定义匿名函数。。。 语法:
arg0,arg1。。。是函数的参数,e是表达式。 它们主要在map、reduce、filter等函数中使用lambda函数
相关问题 更多 >
编程相关推荐