使用map()函数计算整数列表中输入的绝对值

3
通常,当我需要以以下方式输入由空格分隔的整数列表时:

list

12 15 31 -12

我用这个函数:
list(map(int, input().split()))

现在需要返回 [12, 15, 31, -12]

但是,如果由于某些原因我只能输入正整数(即它们的绝对值),最简单的方法是什么?
我可以将所有数字输入到列表中,然后逐个将它们转换为它们的绝对值,但是否有更好的方法?

2个回答

3

3

一旦你理解了 map(func, iterable) 函数的作用,它就是一个简单的问题:它会在给定的 iterable 中的每个元素上调用函数 func,并返回包含结果的迭代器。这相当于进行以下操作:

def my_map(func, iterable):
    for item in iterable:
        yield func(item)

那么如何获得绝对整数值?更改 func 的功能!

  1. 定义一个函数并使用 map 函数将其映射:
def absint(x):
    return abs(int(x))

list(map(absint, input().split()))
  1. 定义一个lambda函数,调用absint
list(map(lambda x: abs(int(x)), input().split()))

1和2本质上是相同的,我不希望它们之间有任何性能差异。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接