在python中返回列表的正数

时间:2015-10-11 01:56:23

标签: python list printing return

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

打印:

  

[1,5,2,10]

def func(a):
    return abs(a)

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

3 个答案:

答案 0 :(得分:3)

您希望每个元素调用一次abs函数,并获取执行此操作的列表。这正是map的用途:

return map(abs, a)

您还可以使用列表理解:

return [abs(n) for n in a]

答案 1 :(得分: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 :(得分:0)

这是一个更详细的答案:

def func(a):
  for item in a:
    yield abs(a)

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