在这里,我们将给大家分享关于Python:返回列表的第一个元素的索引,使传递的函数为true的知识,让您更了解python中返回列表某个元素的索引的本质,同时也会涉及到如何更有效地find()方法:返
在这里,我们将给大家分享关于Python:返回列表的第一个元素的索引,使传递的函数为true的知识,让您更了解python中返回列表某个元素的索引的本质,同时也会涉及到如何更有效地find()方法:返回数组中满足函数的第一个元素的值、Ifelse 只返回列表的第一个元素、php中删除数组的第一个元素和最后一个元素的函数、php中删除数组的第一个元素和最后一个元素的函数_PHP的内容。
本文目录一览:- Python:返回列表的第一个元素的索引,使传递的函数为true(python中返回列表某个元素的索引)
- find()方法:返回数组中满足函数的第一个元素的值
- Ifelse 只返回列表的第一个元素
- php中删除数组的第一个元素和最后一个元素的函数
- php中删除数组的第一个元素和最后一个元素的函数_PHP
Python:返回列表的第一个元素的索引,使传递的函数为true(python中返回列表某个元素的索引)
该list.index(x)
函数返回值为的第一项列表中的索引x
。
是否有一个函数,list_func_index()
类似于index()
具有函数的函数f()
作为参数。该函数在列表的f()
每个元素上运行e
,直到f(e)
返回True
。然后list_func_index()
返回的索引e
。
按代码:
>>> def list_func_index(lst, func): for i in range(len(lst)): if func(lst[i]): return i raise ValueError(''no element making func True'')>>> l = [8,10,4,5,7]>>> def is_odd(x): return x % 2 != 0>>> list_func_index(l,is_odd)3
有没有更优雅的解决方案?(以及该函数的更好的名称)
答案1
小编典典您可以使用生成器在单行代码中做到这一点:
next(i for i,v in enumerate(l) if is_odd(v))
生成器的好处是它们只能计算所请求的数量。因此,请求前两个索引非常简单(几乎):
y = (i for i,v in enumerate(l) if is_odd(v))x1 = next(y)x2 = next(y)
但是,在最后一个索引之后会产生StopIteration异常(这是生成器的工作方式)。知道没有找到这样的值时,这在“先行”方法中也很方便-
list.index()函数将在此处抛出ValueError。
find()方法:返回数组中满足函数的第一个元素的值
作用:
find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。
find() 方法为数组中的每个元素都调用一次函数执行:
- 当数组中的元素在测试条件时返回 true 时, find() 返回符合条件的元素,之后的值不会再调用执行函数。
- 如果没有符合条件的元素返回 undefined
语法:
array.find(function(currentValue, index, arr),thisValue)
- currentValue,必需。当前元素
- index,可选。当前元素的索引值
- arr,可选。当前元素所属的数组对象
- thisValue,可选。 传递给函数的值一般用 "this" 值。如果这个参数为空,"undefined" 会传递给 "this" 值
注意:
find() 对于空数组,函数是不会执行的。
find() 并没有改变数组的原始值。
实例:
const array1 = [5, 12, 8, 130, 44];
const found = array1.find(element => element > 10);
console.log(found);//12
//用对象的属性查找数组里的对象
var inventory = [
{name: ''apples'', quantity: 2},
{name: ''bananas'', quantity: 0},
{name: ''cherries'', quantity: 5}
];
function findCherries(fruit) {
return fruit.name === ''cherries'';
}
console.log(inventory.find(findCherries)); // { name: ''cherries'', quantity: 5 }
Ifelse 只返回列表的第一个元素
ifelse
用于向量,使用 if
/else
进行标量比较。
if(length(list1)<length(list2)) list2 else list1
#$x
#[1] 1 2 3
#$y
#[1] 4 5 6
#$z
#[1] 7 8 9
ifelse
返回与我们正在执行的测试长度相同的输出。 length(length(list1)<length(list2))
是 1,因此它的输出长度也是 1。
就您而言,最好使用非矢量化版本 if ... else ...
as @Ronak Shah did。
但是,如果您坚持使用 ifelse
,以下可能是一种解决方法
ifelse(length(list1)<length(list2),list(list2),list(list1))[[1]]
给出
$x
[1] 1 2 3
$y
[1] 4 5 6
$z
[1] 7 8 9
,
ifelse
始终返回与条件长度相同的对象。在这种情况下,条件 length(list1)<length(list2)
评估为单个逻辑。因为是单个逻辑(长度为1),返回的长度也是1,正好是列表的第一个元素。
dplyr
的 if_else
提示了这个问题:
dplyr::if_else(length(list1)<length(list2),list2,list1)
Error: `true` must be length 1 (length of `condition`),not 3.
所以解决方案(如上面建议的)是使用 if/else。
php中删除数组的第一个元素和最后一个元素的函数
《PHP实战:PHP中删除数组的第一个元素和最后一个元素的函数》要点:
本文介绍了PHP实战:PHP中删除数组的第一个元素和最后一个元素的函数,希望对您有用。如果有疑问,可以联系我们。
PHP应用对于一个PHP数组,该如何删除该数组的第一个元素或者最后一个元素呢?其实这两个过程都可以通过PHP自带的函数 array_pop 和 array_shift 来完成,下面就具体介绍一下如何来操作.
(1)使用 array_pop 删除数组的最后一个元素,例如:
$user=array('apple','banana','orange'); $result=array_pop($user); print_r($result); print_r($user);
结果将是:
orange
array('apple','banana')
(2)使用 array_shift 删除数组的第一个元素,例如:
$user=array('apple','orange'); $result=array_shift($user); print_r($result); print_r($user);
结果将是:
apple
array('banana','orange')
其实删除数组的第一个元素还可以使用 array_splice 这个函数,即:
$user=array_splice($user,1); //删除数组第一个元素,注意此时返回的是被删除后的新的数组
下面简单的对 array_pop 和 array_shift 做一下解释:
array_pop() 弹出并返回 array 数组的最后一个单元,并将数组 array 的长度减一.如果 array 为空(或者不是数组)将返回 NULL.
array_shift() 将 array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位.所有的数字键名将改为从零开始计数,笔墨键名将不变.如果 array 为空(或者不是数组),则返回 NULL.
欢迎参与《PHP实战:PHP中删除数组的第一个元素和最后一个元素的函数》讨论,分享您的想法,小编 jb51.cc为您提供专业教程。
php中删除数组的第一个元素和最后一个元素的函数_PHP
对于一个php数组,该如何删除该数组的第一个元素或者最后一个元素呢?其实这两个过程都可以通过php自带的函数 array_pop 和 array_shift 来完成,下面就具体介绍一下如何来操作。
(1)使用 array_pop 删除数组的最后一个元素,例如:
$user=array(''apple'',''banana'',''orange''); $result=array_pop($user); print_r($result); print_r($user);
结果将是:
orange
array(''apple'',''banana'')
(2)使用 array_shift 删除数组的第一个元素,例如:
$user=array(''apple'',''banana'',''orange''); $result=array_shift($user); print_r($result); print_r($user);
结果将是:
apple
array(''banana'',''orange'')
其实删除数组的第一个元素还可以使用 array_splice 这个函数,即:
立即学习“PHP免费学习笔记(深入)”;
代码如下:
$user=array_splice($user,1); //删除数组第一个元素,注意此时返回的是被删除后的新的数组
下面简单的对 array_pop 和 array_shift 做一下解释:
array_pop() 弹出并返回 array 数组的最后一个单元,并将数组 array 的长度减一。如果 array 为空(或者不是数组)将返回 NULL。
array_shift() 将 array 的第一个单元移出并作为结果返回,将 array 的长度减一并将所有其它单元向前移动一位。所有的数字键名将改为从零开始计数,文字键名将不变。如果 array 为空(或者不是数组),则返回 NULL。
我们今天的关于Python:返回列表的第一个元素的索引,使传递的函数为true和python中返回列表某个元素的索引的分享就到这里,谢谢您的阅读,如果想了解更多关于find()方法:返回数组中满足函数的第一个元素的值、Ifelse 只返回列表的第一个元素、php中删除数组的第一个元素和最后一个元素的函数、php中删除数组的第一个元素和最后一个元素的函数_PHP的相关信息,可以在本站进行搜索。
本文标签: