是否在列表中理解?

是否在列表中理解?

如何在Python中完成以下操作?

row = [unicode(x.strip()) for x in row if x is not None else '']

实质上:

  1. 用空字符串替换所有Nones,然后
  2. 履行职能。


梵蒂冈之花
浏览 440回答 3
3回答

斯蒂芬大帝

你完全可以做到,这只是一个订购问题:[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只是条件,[f(x) for x in sequence if condition]注意,这实际上使用了不同的语言构造,条件表达式,它本身并不是理解句法,而if在.之后for…in是列表理解的一部分,并且习惯于滤光器来自源可迭代的元素。条件表达式可以在各种情况下使用,在这些情况下,您需要根据某种条件在两个表达式值之间进行选择。这与三元算子?:存在于其他语言中..例如:value = 123print(value, 'is', 'even' if value % 2 == 0 else 'odd')

潇潇雨雨

单程:def change(f):     if f is None:         return unicode(f.strip())     else:         return ''row = [change(x) for x in row]尽管如此,你还是有:row = map(change, row)或者你可以使用兰达内联。

四季花海

以下是另一个说明性的例子:>>> print(", ".join(["ha" if i else "Ha" for i in range(3)]) + "!")Ha, ha, ha!它利用了这样一个事实if i评估为False为0向True函数生成的所有其他值。range()..因此,对列表的理解评估如下:>>> ["ha" if i else "Ha" for i in range(3)]['Ha', 'ha', 'ha']
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python