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



通常,当我必须以这种方式输入空格分隔整数的列表时:

12 15 31 -12

我使用这个功能:

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

从而返回CCD_ 1。

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

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

1和2本质上是相同的,我不认为两者在性能上有任何差异。

使用列表理解:

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

最新更新