当前位置:   article > 正文

Python 中怎么将多个输入值赋值给多个变量 | map() 函数的使用_python map 赋值

python map 赋值

问题

有时候我们想将从 input 中获取多个值并且同时赋值给多个变量,以减少代码行数,那么有什么方法能够实现该需求呢?

分析

在 Python 当中有一个高阶函数:map() 映射函数可以解决这个问题。、

map() 映射函数

作用

map 将传入的函数依次作用到传入可迭代对象的每一个元素上,得到一个新的可迭代对象并返回。

语法

map(func, *iterables)

参数
  • func – 传入的函数(普通函数 | lambda 函数(匿名函数))
  • Iterable 可迭代对象
返回值

返回一个新的可迭代对象:迭代器

示例代码
from collections import Iterator


def f(x):
    return x + 2


list1 = [2, 2, 1, 0, 8]
result = map(f, list1)

# 输出 map() 返回的对象
print(result)

# 判断 map() 返回的对象是否为迭代器
print(isinstance(result, Iterator))

# 访问迭代器的元素
print(list(result))

result = map(lambda x: x + 2, list1)
print(list(result))

result = map(lambda x: x if x % 2 == 0 else x + 1, list1)
print(list(result))

# 运行结果:
<map object at 0x0000014CD2A20CF8>
True
[4, 4, 3, 2, 10]
[4, 4, 3, 2, 10]
[2, 2, 2, 0, 8]
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

既然知道了 map() 函数的一个基本用法,那么接下来分析我们需要解决的这个问题:

要想将从 input 中获取到的内容变成一个可迭代对象,由于获取到的是一个字符串,所以可以通过操作字符串的函数 split() 对字符串进行分割并返回一个列表,然后在 map() 中第一个参数传入 int() 函数将字符串转换成数字。

解决

例如想要输入并获取一个三维坐标:

x, y, z = map(int, input('请输入一个三维坐标:').split())

print(f'该三维坐标为:({x},{y},{z})')


# 运行结果:
请输入一个三维坐标:1 2 3
该三维坐标为:(1,2,3)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号