代码之家  ›  专栏  ›  技术社区  ›  Mainland

如果条件不满足,Python将生成空列表

  •  1
  • Mainland  · 技术社区  · 4 年前

    if

    我的代码:

    ip_list = []
    op_list= [ip_list[0] if len(ip_list)>0 else '']
    

    当前输出:

    op_list = ['']
    

    预期产量:

    op_list = []
    
    4 回复  |  直到 4 年前
        1
  •  2
  •   Brian61354270    4 年前

    这可以通过切片更简洁地完成:

    op_list = ip_list[:1]
    

    如果 ip_list 至少有一个元素, op_list ip\U列表 . 否则, 操作列表

    >>> a = [1, 2, 3]
    >>> b = []
    >>> a[:1]
    [1]
    >>> b[:1]
    []
    
        2
  •  1
  •   Tâmer Cuba    4 年前
    
       op_list = [] if ip_list else [ip_list[0]]
    
        3
  •  1
  •   Henry Ecker Super Kai - Kazuya Ito    4 年前

    next + iter 也是一种选择:

    ip_list = []
    op_list = next(iter(ip_list), [])
    
    print(op_list)
    

    输出:

    []
    

    ip_list = [1, 2]
    op_list = next(iter(ip_list), [])
    
    print(op_list)
    

    输出:

    1
    

    可以接受两个参数 next(iterator[, default]) . 下一个

    在本例中,它将从iter(ip_列表)返回第一个值,类似于 ip_list[0] ,而如果没有可用的值,它将返回 []

        4
  •  0
  •   Nouman ProfHase85    4 年前

    你只需要第一个元素,如果 ip_list 有什么。

    [ip_list[0]] if ip_list else []
    
    推荐文章