我想检查我的对象列表是否包含具有特定属性值的对象.
class Test:
def __init__(self, name):
self.name = name
# in main()
l = []
l.append(Test("t1"))
l.append(Test("t2"))
l.append(Test("t2"))
Run Code Online (Sandbox Code Playgroud)
我想要一种检查列表是否包含名称为t1的对象的方法.怎么做到呢?我找到了/sf/answers/41889081/,
[x for x in myList if x.n == 30] # list of all matches
any(x.n == 30 for x in myList) # if there is any matches
[i for i,x in enumerate(myList) if x.n == 30] # indices of all matches
def first(iterable, default=None):
for item in iterable:
return item
return default
first(x for x in myList if x.n …Run Code Online (Sandbox Code Playgroud) Scala中以下泛型定义之间有何不同:
class Foo[T <: List[_]]
Run Code Online (Sandbox Code Playgroud)
和
class Bar[T <: List[Any]]
Run Code Online (Sandbox Code Playgroud)
我的直觉告诉我他们差不多,但后者更明确.我发现前者编译的情况,但后者不编,但不能指出确切的区别.
谢谢!
编辑:
我可以把另一个扔进去吗?
class Baz[T <: List[_ <: Any]]
Run Code Online (Sandbox Code Playgroud) Python标准库定义了一个any()函数
如果iterable的任何元素为true,则返回True.如果iterable为空,则返回False.
它仅检查元素是否评估为True.我希望它能够如此指定一个回调来判断一个元素是否符合以下条件:
any([1, 2, 'joe'], lambda e: isinstance(e, int) and e > 0)
Run Code Online (Sandbox Code Playgroud) 给出一个简单的Set<T>方法(快速,几行代码)从中获取任何值是Set什么?
使用a List,很容易:
List<T> things = ...;
return things.get(0);
Run Code Online (Sandbox Code Playgroud)
但是,有了a Set,没有.get(...)方法,因为Sets没有被排序.
是否有相当于IEnumerable.Any(Predicate<T>)JavaScript或jQuery?
我正在验证项目列表,并希望在检测到错误时提前中断.我可以使用它$.each,但我需要使用外部标志来查看该项是否实际找到:
var found = false;
$.each(array, function(i) {
if (notValid(array[i])) {
found = true;
}
return !found;
});
Run Code Online (Sandbox Code Playgroud)
什么是更好的方式?我不喜欢for在JavaScript数组中使用plain ,因为它遍历所有成员,而不仅仅是值.
由于泛型最近在 Go 1.18 中发布,我已经开始学习它们。我一般都明白这个概念,因为我过去有一些 Java 经验。但我没有得到一些实施细节。
例如:什么时候更适合any使用interface{}? 这是一个例子:
func printInterface(foo interface{}) {
fmt.Printf("%v\n", foo)
}
func printAny[T any](foo T) {
fmt.Printf("%v\n", foo)
}
func (suite *TestSuite) TestString() {
printInterface("foo")
printAny("foo")
}
Run Code Online (Sandbox Code Playgroud)
两种实现都有效。但是,如果我尝试nil使用any-version 进行打印,我会收到编译时错误:
无法推断 T。
https://go.dev/play/p/0gmU4rhhaOP
nil如果我尝试使用-version进行打印,我不会收到此错误interface{}。
那么它的用例是什么any?与简单地使用相比,它何时会带来哪些好处interface{}?
我要求提供一个具体的示例,其中一种实现客观上比另一种实现更合适和/或存在可以评估的特定好处。
我有这个代码(整个代码并不重要,但可以在这个链接上看到):
internal static class PlayCardActionValidator
{
public static bool CanPlayCard(...)
{
// ...
var hasBigger =
playerCards.Any(
c => c.Suit == otherPlayerCard.Suit
&& c.GetValue() > otherPlayerCard.GetValue());
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
在反编译器(ILSpy)中打开代码后,我注意到<>c__DisplayClass0_0C#编译器存在新创建的类:
如果此代码对系统性能不重要,这对我来说不是问题.此方法被调用数百万次,垃圾收集器正在清理这些<>c__DisplayClass0_0实例,这会降低性能:
在使用该Any方法时,如何避免创建此类(他的实例和垃圾收集)?
为什么C#编译器会创建这个类,有没有Any()我可以使用的替代方法?
我试过了两个
1)smthng = any(从exmplTable中选择id)
2)smthng in(从exmplTable中选择id)
我的数据得到了相同的结果.
这两个表达有什么不同吗?
>>> l = list(range(10))
>>> l
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> if filter(lambda x: x > 10, l):
... print "foo"
... else: # the list will be empty, so bar will be printed
... print "bar"
...
bar
Run Code Online (Sandbox Code Playgroud)
我想用any()它代替,但any()只需要一个参数:iterable.有没有更好的办法?
any ×10
python ×3
generics ×2
attributes ×1
c# ×1
callback ×1
covariance ×1
foreach ×1
go ×1
ienumerable ×1
instance ×1
java ×1
javascript ×1
jquery ×1
linq ×1
list ×1
operation ×1
operators ×1
performance ×1
postgresql ×1
python-2.7 ×1
scala ×1
set ×1
sql ×1
sql-in ×1