在Python中选择列表的非空元素

her*_*lla 4 python string list

鉴于:

a = 'aaa'
b = ''
c = 'ccc'
d = ''
e = 'eee'

list = (a, b, c, d, e)
Run Code Online (Sandbox Code Playgroud)

如何使用列表的所有非空元素获取字符串?

期望的输出:

'aaa,ccc,eee'
Run Code Online (Sandbox Code Playgroud)

sle*_*ica 6

使用生成器表达式:

",".join(string for string in lst if len(string) > 0)
Run Code Online (Sandbox Code Playgroud)

",".join()部分使用join()字符串的方法,它接受一个可迭代的参数并输出一个新的字符串,该字符串使用","作为分隔符连接项目。

括号之间的生成器表达式用于从列表中过滤空字符串。

原始列表不会改变。

  • 请注意,您也可以只使用条件“if string”,因此“','.join(string for string in lst if string)”的工作原理相同,并且稍微更简洁。 (2认同)
  • “这也不会创建新的内存列表” - 不,[它完全会](https://github.com/python/cpython/blob/v3.6.3/Objects/unicodeobject.c#L9950) ,因为 `join` 将参数具体化为一个列表,因此它可以进行两次传递。 (2认同)