代码之家  ›  专栏  ›  技术社区  ›  Simon D

从python中的列表中获取第一个非空字符串

  •  9
  • Simon D  · 技术社区  · 15 年前

    6 回复  |  直到 15 年前
        1
  •  25
  •   Wojciech Bederski    15 年前
    next(s for s in list_of_string if s)
    

        2
  •  6
  •   sykora    15 年前

    要删除所有空字符串,

    [s for s in list_of_strings if s]

    要获取第一个非空字符串,只需创建此列表并获取第一个元素,或者使用wuub建议的lazy方法。

        3
  •  3
  •   SilentGhost    15 年前
    def get_nonempty(list_of_strings):
        for s in list_of_strings:
            if s:
                return s
    
        4
  •  3
  •   Steve Losh    15 年前

    这里有一条捷径:

    filter(None, list_of_strings)[0]
    

    from itertools import ifilter
    ifilter(None, list_of_strings).next()
    
        5
  •  0
  •   ghostdog74    15 年前

    要获取列表中的第一个非空字符串,只需在其上循环并检查其是否为空。就这些。

    arr = ['','',2,"one"]
    for i in arr:
        if i:
            print i
            break
    
        6
  •  0
  •   yason yason    15 年前

    (i for i, s in enumerate(x) if s).next()
    

    返回其在列表中的索引。“x”绑定指向字符串列表。