2024-04-27 04:33:03 发布
网友
如何在Python中执行以下操作?
row = [unicode(x.strip()) for x in row if x is not None else '']
本质上:
你完全可以这么做,这只是订购问题:
[unicode(x.strip()) if x is not None else '' for x in row]
一般来说
[f(x) if condition else g(x) for x in sequence]
而且,对于仅具有if条件的列表理解
if
[f(x) for x in sequence if condition]
注意,这实际上使用了一个不同的语言构造conditional expression,它本身不是comprehension syntax的一部分,而for…in后面的if是列表理解的一部分,用于从源iterable筛选元素。
for…in
条件表达式可以用于各种情况,在这些情况下,您希望根据某些条件在两个表达式值之间进行选择。这与ternary operator ^{} that exists in other languages相同。例如:
value = 123 print(value, 'is', 'even' if value % 2 == 0 else 'odd')
下面是另一个示例:
>>> print(", ".join(["ha" if i else "Ha" for i in range(3)]) + "!") Ha, ha, ha!
它利用了这样一个事实,即if i对于0计算结果为False,对于由函数range()生成的所有其他值计算结果为True。因此,列表理解评估如下:
if i
0
False
range()
True
>>> ["ha" if i else "Ha" for i in range(3)] ['Ha', 'ha', 'ha']
单程:
def change(f): if f is None: return unicode(f.strip()) else: return '' row = [change(x) for x in row]
尽管你有:
row = map(change, row)
或者可以使用lambda内联。
你完全可以这么做,这只是订购问题:
一般来说
而且,对于仅具有
if
条件的列表理解注意,这实际上使用了一个不同的语言构造conditional expression,它本身不是comprehension syntax的一部分,而
for…in
后面的if
是列表理解的一部分,用于从源iterable筛选元素。条件表达式可以用于各种情况,在这些情况下,您希望根据某些条件在两个表达式值之间进行选择。这与ternary operator ^{} that exists in other languages 相同。例如:
下面是另一个示例:
它利用了这样一个事实,即
if i
对于0
计算结果为False
,对于由函数range()
生成的所有其他值计算结果为True
。因此,列表理解评估如下:单程:
尽管你有:
或者可以使用lambda内联。
相关问题 更多 >
编程相关推荐