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

Absolute vaule of an input of a list of integers using map() function

通常,当我必须以这种方式输入由 space 分隔的整数的 list 时:

12 15 31 -12

我使用这个功能:

list(map(int, input().split()))

所以 returns [12, 15, 31, -12].

但是,现在,如果出于某种原因我必须将数字输入为正整数(即它们的绝对值),我应该如何使用它最简单?
我可以很好地输入列表中的所有数字,然后一个一个地输入,将它们转换为它们的绝对值,但是它们是更好的方法吗?

使用list comprehension:

[abs(int(x)) for x in input().split()]

一旦您理解了 map(func, iterable) 函数的作用,这就很简单了:它在给定 iterable 每个元素 上调用函数 func ],以及 returns 一个包含结果的迭代器。相当于这样做:

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. 定义调用 absint:
  2. 的 lambda 函数
list(map(lambda x: abs(int(x)), input().split()))

1 和 2 本质上是一样的,我不希望两者在性能上有任何差异。