python中基于mapping数据的字典dict生成

在python中,字典的生成一般有三种方式:

方式一:空字典+添加操作

# 方法1:
a = {}

# 方法二
a = dict()

# 接着通过update等操作
a.update()

方式二:dict(**kwargs)方式

# 方法1
a = {"a":1, "b":2, "c":3}

# 方法2
a = dict(a=1, b=2, c=3)

方式三:dict(mapping)方式

这里mapping类型的数据是什么样?很容易联想到python中的map函数,即将某函数逐个作用于某可迭代对象中的各元素。

  • 一个简单的map示例
mapper1 = map(lambda x: x**2, range(1, 5))   # 返回一个map对象,这是一个迭代器对象

# 将其列表化,此时调用迭代器的__next__方法
list(mapper1)     # 返回[1, 4, 9, 16]

# 再次列表化时只会返回孔列表
list(mapper1)      # 返回[]
  • 一个更复杂的map示例
# 同样的,可以利用map作用于一个序列或者两个序列,返回一个(x,y)的元素对象
mapper2 = map(lambda x: (x, x**2), range(1, 5))

# 列表化
list(mapper2)   # 返回[(1, 1), (2, 4), (3, 9), (4, 16)]

# 因为有(x, y),所以可以考虑字典化。这也正是dict(mapping)中的mapping
mapper2 = map(lambda x: (x, x**2), range(1, 5))   # 必须重新定义,否则下面dict()时会返回空字典{}
dict(mapper2)    # 返回{1: 1, 2: 4, 3: 9, 4: 16}
  • zip等函数也同样能生成mapping对象
a = zip([1,2,3], [4,5,6])
list(a)    # 列表化,返回[(1, 4), (2, 5), (3, 6)]

总结: mapping类型的数据就是元素为(x,y)的列表,通过dict函数直接可生成以key为x, value为y的字典对象。

具体的交互式文件请戳这里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值