使用 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]
.
但是,现在,如果出于某种原因我必须将数字输入为正整数(即它们的绝对值),我应该如何使用它最简单?
我可以很好地输入列表中的所有数字,然后一个一个地输入,将它们转换为它们的绝对值,但是它们是更好的方法吗?
[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
的作用!
- 定义一个函数并
map
到那个:
def absint(x):
return abs(int(x))
list(map(absint, input().split()))
- 定义调用
abs
和 int
: 的 lambda 函数
list(map(lambda x: abs(int(x)), input().split()))
1 和 2 本质上是一样的,我不希望两者在性能上有任何差异。
通常,当我必须以这种方式输入由 space 分隔的整数的 list 时:
12 15 31 -12
我使用这个功能:
list(map(int, input().split()))
所以 returns [12, 15, 31, -12]
.
但是,现在,如果出于某种原因我必须将数字输入为正整数(即它们的绝对值),我应该如何使用它最简单?
我可以很好地输入列表中的所有数字,然后一个一个地输入,将它们转换为它们的绝对值,但是它们是更好的方法吗?
[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
的作用!
- 定义一个函数并
map
到那个:
def absint(x):
return abs(int(x))
list(map(absint, input().split()))
- 定义调用
abs
和int
: 的 lambda 函数
list(map(lambda x: abs(int(x)), input().split()))
1 和 2 本质上是一样的,我不希望两者在性能上有任何差异。