【问题标题】:Return positive numbers of a list in python在python中返回列表的正数
【发布时间】:2016-01-08 17:35:18
【问题描述】:

我是 python 新手。我想知道如何返回并将下面的列表转换为正数。那会

打印:

[1, 5, 2, 10]

def func(a):
    return abs(a)

print func(a=[1,-5,2,-10])

【问题讨论】:

    标签: python list printing return


    【解决方案1】:

    使用list comprehension

    $ python
    Python 2.7.6 (default, Jun 22 2015, 17:58:13) 
    [GCC 4.8.2] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> a = [1, -5, 2, -10]
    >>> b = [abs(x) for x in a]
    >>> print b
    [1, 5, 2, 10]
    >>> 
    

    正如 Claudiu 指出的,标准库中的 map 函数也可以工作。不过,Python 社区倾向于尽可能使用列表推导,因为它通常会使代码更易于阅读。

    【讨论】:

      【解决方案2】:

      您想为每个元素调用一次abs 函数并获取由此产生的列表。这正是map 的用途:

      return map(abs, a)
      

      您也可以使用列表推导:

      return [abs(n) for n in a]
      

      【讨论】:

        【解决方案3】:

        这是一个更详细的答案:

        def func(a):
          for item in a:
            yield abs(a)
        
        print list(func(a=[1,-5,2,-10]))
        

        【讨论】:

          猜你喜欢
          • 2017-06-21
          • 1970-01-01
          • 2013-10-28
          • 1970-01-01
          • 2012-12-04
          • 1970-01-01
          • 2013-11-29
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多