例如:我有一个名为 的列表container。其中有一些元素,我想检查是否例如。其中任何一个都很复杂。
container = [1, 0.5, "text", 1j]
if isinstance(container[?], complex):
print("This list has complex elements")
Run Code Online (Sandbox Code Playgroud)
在这个例子中,我可以写container[-1],但是有通用的方法吗?我可以使用 for 循环,但我想知道是否有更好的方法来做到这一点。
我正在尝试在 Rust 中实现合并排序的合并功能。问题是我试图为泛型类型执行此操作T,该类型仅受std::cmp::PartialOrd.
这是代码:
fn my_merge<T: std::cmp::PartialOrd>(a: &mut Vec<T>, mut b: &mut Vec<T>) -> Vec<T> {
let mut res: Vec<T> = Vec::new();
let mut a_iter = a.into_iter(); // !!!
let mut b_iter = b.into_iter(); // !!!
while let (Some(a_item), Some(b_iter)) = (a_iter.next(), b_iter.next()) {
if a_item <= b_item {
res.push(*a_item); // !!!
} else {
res.push(*b_item); // !!!
}
}
// ... Omitted code ...
res
}
Run Code Online (Sandbox Code Playgroud)
在查看文档时,我发现了该into_iter()方法,该next()方法应该产生T而不是&T. …