如何在Python中执行以下操作?
row = [unicode(x.strip()) for x in row if x is not None else '']
Run Code Online (Sandbox Code Playgroud)
实质上:
这是我试图变成列表理解的代码:
table = ''
for index in xrange(256):
if index in ords_to_keep:
table += chr(index)
else:
table += replace_with
Run Code Online (Sandbox Code Playgroud)
有没有办法将else语句添加到此理解中?
table = ''.join(chr(index) for index in xrange(15) if index in ords_to_keep)
Run Code Online (Sandbox Code Playgroud) 我正在创建一个列表理解,我从字典中获取键列表,忽略某些指定的键。
[x if x not in ignoreKeys else None for x in entity]
Run Code Online (Sandbox Code Playgroud)
我目前正在使用 else None 作为我不附加被忽略的键的方式,但理想情况下我会让列表理解通过该迭代。不幸的是 pass 给出了一个语法错误,所以我想知道是否有某种方法可以模拟 pass 功能?
我想转换以下字符串:
s = '1|2|a|b'
Run Code Online (Sandbox Code Playgroud)
至
[1, 2, 'a', 'b']
Run Code Online (Sandbox Code Playgroud)
是否可以在一行中进行转换?
a = [None, None, '2014-04-27 17:31:17', None, None]
试图取代None与''
尝试了很多次,这是我得到的最接近的.b= ['' for x in a if x==None]这给了我四个,''但没有留下日期
我认为它会b= ['' for x in a if x==None else x]但不起作用.
如果嵌套如下:
a = [[None, None, '2014-04-27 17:31:17', None, None],[None, None, '2014-04-27 17:31:17', None, None],[None, None, '2014-04-27 17:31:17', None, None]]
你还能使用列表推导吗?
numpy.trunc 是一个基于abs值的floor函数:
a = np.array([-1.7, -1.5, -0.2, 0.2, 1.5, 1.7, 2.0])
np.floor(a)
Out[122]: array([-2., -2., -1., 0., 1., 1., 2.])
np.trunc(a)
Out[123]: array([-1., -1., -0., 0., 1., 1., 2.])
Run Code Online (Sandbox Code Playgroud)
ceil输出是这样的:
np.ceil(a)
Out[124]: array([-1., -1., -0., 1., 2., 2., 2.])
Run Code Online (Sandbox Code Playgroud)
但我想要一个输出:array([ - 2., - 2.,-1.,1.,2.,2.,2.])这个numpy函数是什么?
编辑:不幸的是,零函数没有内置圆.基于@Mitch和@Divakar的答案,我做了一些测试,并尝试优化速度和内存使用.
def rawzero1(a): #@Mitch
return np.sign(a)*np.ceil(np.abs(a))
def rawzero2(a): #@Divakar
return np.where(a<0, np.floor(a), np.ceil(a))
def rawzero3(a):
_a = np.abs(a)
np.ceil(_a, _a) # inplace
np.copysign(_a, a, out = _a)
return _a
def rawzero4(a):
_a = np.ceil(np.abs(a))
np.copysign(_a, a, …Run Code Online (Sandbox Code Playgroud)