在Python中,我知道检查列表是否为空的pythonic方法
if not a:
# do things with empty list
Run Code Online (Sandbox Code Playgroud)
要检查列表是否为空,我们会这样做:
if a:
# do things with my list
Run Code Online (Sandbox Code Playgroud)
如果两个列表不是空的,我们如何同时(如读)检查?
if a and b:
# do things with my two lists
Run Code Online (Sandbox Code Playgroud)
以上似乎不起作用,我不确定(a and b)
实际意味着什么.对于a = [2]
,b = [1,3]
,(a and b) = [1,3]
.什么是and
真正在这里做什么操作?如果我b = []
在某个时刻最终减少,(a and b) = []
即使a
不是空的.
编辑:我的用例类似于
while (a and b are not empty):
modify a
modify b
Run Code Online (Sandbox Code Playgroud)
我会天真地认为,既然if a
检查列表是否为空, …
我想在numpy数组中取每个值的平方根,同时保留值的符号(并且在负数时不返回复数) - 带符号的平方根.
下面的代码演示了列表所需的功能,但没有利用numpy优化的数组操作超级大国.
def signed_sqrt(list):
new_list = []
for v in arr:
sign = 1
if v < 0:
sign = -1
sqrt = cmath.sqrt(abs(v))
new_v = sqrt * sign
new_list.append(new_v)
list = [1., 81., -7., 4., -16.]
list = signed_sqrt(list)
# [1., 9., -2.6457, 2. -4.]
Run Code Online (Sandbox Code Playgroud)
对于某些情况,我正在计算[数千]图像比较的Hellinger内核.
用numpy做任何顺利的方法吗?谢谢.