我是python的新手。我想知道如何返回并将下面的列表转换为正数。
打印:
[1,5,2,10]
def func(a):
return abs(a)
print func(a=[1,-5,2,-10])
答案 0 :(得分:3)
您希望每个元素调用一次abs
函数,并获取执行此操作的列表。这正是map
的用途:
return map(abs, a)
您还可以使用列表理解:
return [abs(n) for n in a]
答案 1 :(得分:1)
$ 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]))