标签: built-in

对布尔列表中的元素布尔运算符是否有内置函数?

例如,如果你有n个相同长度的bool列表,那么elementwise boolean AND应该返回另一个列表,该列表的长度在所有输入列表都为True的位置为True,其他地方为False.

它很容易编写,我只是希望使用内置(如果存在)(为了标准化/可读性).

这是元素AND的实现:

def eAnd(*args):
    return [all(tuple) for tuple in zip(*args)]
Run Code Online (Sandbox Code Playgroud)

示例用法:

>>> eAnd([True, False, True, False, True], [True, True, False, False, True], [True, True, False, False, True])
[True, False, False, False, True]
Run Code Online (Sandbox Code Playgroud)

python list built-in boolean-operations elementwise-operations

27
推荐指数
2
解决办法
2万
查看次数

如何恢复我意外覆盖的内置?

set在交互式python会话中使用它作为变量名称而意外地覆盖了 - 有没有什么办法可以在set不重新启动会话的情况下访问原始函数?

(我在那个会话中有很多东西,我宁愿不必这样做,虽然我当然可以在必要的时候.)

python built-in

26
推荐指数
2
解决办法
7289
查看次数

itertools.ifilter与 过滤器 列表理解

我试图更熟悉itertools模块,并找到了一个名为的函数ifilter.

根据我的理解,它基于给定的函数进行过滤和迭代,并在包含函数计算结果的iterable元素的列表上返回一个迭代器True.

问题1:到目前为止我的理解是否正确?

问题2:除了返回和迭代器之外,它与内置filter函数有什么不同?

问题3哪个更快?

据我所知,事实并非如此.我错过了什么吗?(我跑了下面的测试)

>>> itertools.ifilter(lambda x: x%2, range(5))
<itertools.ifilter object at 0x7fb1a101b210>
>>> for i in itertools.ifilter(lambda x: x%2, range(5)): print i
... 
1
3
>>> filter(lambda x: x%2, range(5))
[1, 3]
>>> function = lambda x: x%2
>>> [item for item in range(5) if function(item)]
[1,3]
Run Code Online (Sandbox Code Playgroud)

python module function built-in

25
推荐指数
3
解决办法
2万
查看次数

Python:我为什么要使用next()而不是obj.next()?

Python 2.6引入了一个next函数.

为什么这有必要?人们总是可以打字obj.next()而不是next(obj).

后者更多pythonic吗?

python built-in next

25
推荐指数
3
解决办法
7011
查看次数

PHP数组函数,返回给定键的子集

我正在寻找一个像这样的数组函数:

$myArray = array(
  'apple'=>'red',
  'banana'=>'yellow',
  'lettuce'=>'green',
  'strawberry'=>'red',
  'tomato'=>'red'
);
$keys = array(
  'lettuce',
  'tomato'
);

$ret = sub_array($myArray, $keys);
Run Code Online (Sandbox Code Playgroud)

$ ret是:

array(
  'lettuce'=>'green',
  'tomato'=>'red'
);
Run Code Online (Sandbox Code Playgroud)

一个没有问题,我自己写下来,我想避免foreach循环并采用内置函数或内置函数的组合.在我看来,这是一个通用的和常见的数组操作 - 如果循环是唯一的选择,我会感到惊讶.

php arrays built-in higher-order-functions

25
推荐指数
2
解决办法
6410
查看次数

nameof和typeof之间的区别

如果我错了,请纠正我,但要做类似的事情

var typeOfName = typeof(Foo).Name;
Run Code Online (Sandbox Code Playgroud)

var nameOfName = nameof(Foo);
Run Code Online (Sandbox Code Playgroud)

应该给你完全相同的输出.根据这个来源的一个可以理解的原因:https://msdn.microsoft.com/en-us/library/dn986596.aspx是那个

"使用nameof有助于在重命名定义时保持代码有效"

如果你想要得到的类实例的字符串是不是可以做这样的事情:

var fooInstance = new Foo();
var nameOfName = nameof(fooInstance);
Run Code Online (Sandbox Code Playgroud)

但是,你可以这样做:

static string GetName<T>(T item) where T : class 
{
  return typeof(T).GetProperties()[0].Name;
}
var typeOfName2 = GetName(new { fooInstance });
Run Code Online (Sandbox Code Playgroud)

在这两种情况下(typeofnameof)都可以进行重构,所以我没有看到重新发明另一个更高级别关键字的任何其他原因,例如nameof,执行已经存在的事情.它们之间是否有任何差异,我没有清楚地看到?

最后,如果有人能指出我参考资料来了解其执行情况,我将不胜感激nameof.它使用反射吗?

更新1:这里采取

nameof显然与声明字符串变量一样有效.没有任何反思或任何反对!

var firstname = "Gigi";
 var varname = nameof(firstname);
 Console.WriteLine(varname); // Prints "firstname" to the console
Run Code Online (Sandbox Code Playgroud)

当您查看生成的MSIL时,您将看到它等同于字符串声明,因为使用ldstr运算符将对字符串的对象引用推送到堆栈: …

c# typeof built-in c#-6.0 nameof

25
推荐指数
4
解决办法
6608
查看次数

是否可以在Python中引发内置异常,但使用不同的消息?

用自定义文本引发内置异常是否可以?或者使用自定义文本引发内置警告

文件内容如下:

exception ValueError:当内置操作或函数接收参数时引发(...)

是否暗示只有内置操作才会引发ValueError异常?

实际上,我知道创建一个继承自ValueError或Exception的异常类是安全的.但是可以不这样做,并直接引发ValueError("自定义文本")?

由于ValueError是内置的,因此与自定义异常类型(类似"ValueErrorSpecificModule",这不是标准的)相比,引发ValueError(使用自定义文本)允许用户快速查看所涉及的问题类型.

python exception raise built-in

23
推荐指数
1
解决办法
4239
查看次数

如何使用Perl的本地时间和打印来获取时间戳?

我使用以下语句来获取当前时间.

  print "$query executed successfully at ",localtime;
  print "$query executed successfully at ",(localtime);
  print "$query executed successfully at ".(localtime);
Run Code Online (Sandbox Code Playgroud)

产量

 executed successfully at 355516731103960
 executed successfully at 355516731103960
 executed successfully at Wed Apr  7 16:55:35 2010
Run Code Online (Sandbox Code Playgroud)

前两个语句不以日期格式打印当前时间.第三个语句仅以日期格式提供正确的输出.

我的理解是第一个在标量上下文中返回一个值,所以它返回数字.

然后在第二个打印中我只在列表上下文中使用了localtime,为什么它也给出了数字输出.

perl built-in

23
推荐指数
3
解决办法
6万
查看次数

用户定义的__mul__方法不可交换

我编写了一个用Python表示向量的类(作为练习),我在扩展内置运算符方面遇到了问题.

__mul__为vector类定义了一个方法.问题是在表达式中x * y,解释器调用__mul__x 的方法,而不是y.

所以vector(1, 2, 3) * 2返回一个矢量<2,4,6>就像它应该的那样; 但是2 * vector(1, 2, 3)会创建一个TypeError,因为内置的int类不支持我的用户定义向量的乘法.

我可以通过简单地编写一个新的乘法函数来解决这个问题

def multiply(a, b):
    try:
        return a * b
    except TypeError:
        return b * a
Run Code Online (Sandbox Code Playgroud)

但这需要重新定义我想用于用户定义的类的每个函数.

有没有办法让内置函数正确处理?

python built-in extend

23
推荐指数
1
解决办法
7616
查看次数

如何在Python中实现方法,`classmethod`和`staticmethod`?

Python中的方法在什么时候获取get属性? - 一旦他们在课堂上定义了?为什么Python让我定义一个没有任何参数的方法(甚至不是第一个self参数)?

我知道如何使用classmethodstaticmethod,并且我知道它们是内置函数,但是如此装饰的函数会发生什么?

基本上,我想知道类定义和类构造之间发生的"魔力".

python methods class built-in

22
推荐指数
2
解决办法
6743
查看次数