python 中是否有等效于 `any` 的方法
Is there an equivalent to the `any` method in python
Python 的标准库中有一个名为 any
的非常方便的函数,它允许检查给定的可迭代对象中的任何项目是否验证了某些条件。
my_list = [1, 3, 4, 5, 8]
# using any
four_is_present = any(elem == 4 for elem in my_list)
# is equivalent to
four_is_present = False
for elem in my_list:
if elem == 4:
four_is_present = True
break
我想知道 Rust 中是否有等效的语法糖,或者我是否必须使用 "longer" 表达式。
是的。 Iterator::any
是 Iterator 上的一个方法(与 Python 相反,它是一个接受 Iterator 的独立函数)。
您可以像调用任何其他方法一样调用它。
fn main() {
let my_list = vec![1, 3, 4, 5, 8];
println!("{}", my_list.iter().any(|&i| i == 4));
}
如果您正在使用 Vec
或 slice
,您可以使用 contains
which will use the any
method in its implementation。
fn main() {
let my_list = vec![1, 3, 4, 5, 8];
println!("{}", my_list.contains(&4));
}
API doc 还将列出其他有用的方法,例如all
、chain
、zip
、map
或 filter
。文档中也有这些方法的示例,都值得一读。
Python 的标准库中有一个名为 any
的非常方便的函数,它允许检查给定的可迭代对象中的任何项目是否验证了某些条件。
my_list = [1, 3, 4, 5, 8]
# using any
four_is_present = any(elem == 4 for elem in my_list)
# is equivalent to
four_is_present = False
for elem in my_list:
if elem == 4:
four_is_present = True
break
我想知道 Rust 中是否有等效的语法糖,或者我是否必须使用 "longer" 表达式。
是的。 Iterator::any
是 Iterator 上的一个方法(与 Python 相反,它是一个接受 Iterator 的独立函数)。
您可以像调用任何其他方法一样调用它。
fn main() {
let my_list = vec![1, 3, 4, 5, 8];
println!("{}", my_list.iter().any(|&i| i == 4));
}
如果您正在使用 Vec
或 slice
,您可以使用 contains
which will use the any
method in its implementation。
fn main() {
let my_list = vec![1, 3, 4, 5, 8];
println!("{}", my_list.contains(&4));
}
API doc 还将列出其他有用的方法,例如all
、chain
、zip
、map
或 filter
。文档中也有这些方法的示例,都值得一读。