问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

python元组元素 如何一一映射

发布网友 发布时间:2022-04-18 02:18

我来回答

2个回答

懂视网 时间:2022-04-18 06:39

字典dict是Python中重要的数据结构,在字典中,每一个键都对应一个值,其中键与值的关系就叫做映射,也可以说是每一个键都映射到一个值上。

映射(map)是更具一般性的数据类型,具体到Python中就是字典。(推荐学习:Python视频教程)

在使用字典的同时我们一定会有一个疑问,它是怎样通过键去映射到值的呢,它怎么知道这个键的值是谁?

于是我们有了一个这样的想法:

使用列表来存储一项一项的键值对象,寻找的时候就遍历一遍列表,找到当键是你所要找的键时,取出该对象中的值value。

这个想法很简单,我们可以很快的实现一下:

这里先介绍一些相关的抽象基类,Mapping与MutableMapping,它们在collections模块中,供我们实现自定义的map类。Mapping包含dict中的所有不变方法,MutableMapping扩展包含了所有可变方法,但它们两个都不包含那五大核心特殊方法:getitem、setitem、delitem、len、iter。也就是说我们的目标就是实现这五大核心方法使该数据结构能够使用。

from collections import MutableMapping

class MyMap(MutableMapping):

 class item():

 def __init__(self,key,value):
  self.key = key
  self.value = value

 def __eq__(self, other):
  return self.key == other.key

 def __ne__(self, other):
  return self.key != other.key

 def __init__(self):
 self.table = []

 def __getitem__(self, item):
 for i in self.table:
  if i.key == item:
  return i.value
 raise KeyError('Key Error: '+ repr(item))

 def __setitem__(self, key, value):
 for i in self.table:
  if i.key == key:
  i.value = value
  return
 self.table.append(self.item(key,value))

 def __delitem__(self, key):
 for n,i in enumerate(self.table):
  if i.key == key:
  self.pop(n)
  return
 raise KeyError('Key Error: '+ repr(key))

 def __len__(self):
 return len(self.table)

 def __iter__(self):
 for i in self.table:
  yield i.key

上面这个办法很简单,但是却不是很有效率,我们每次都需要遍历一遍列表才能找到该键的索引,所以时间复杂的为O(n)。

更多Python相关技术文章,请访问Python教程栏目进行学习!

热心网友 时间:2022-04-18 03:47

print([(x,y) for x in a for y in b])
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么叫补按揭 后按揭贷款什么意思 买房者续按揭有什么危害 加按揭是什么意思 八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 驾考马上就考试了紧张怎么办 启明泰和进入考试是直接就考吗 我马上就考试了,心情好紧张怎么办??” 家里*我考公务员,考就考吧。现在又*我按他们的意思天天看书,难道这样就保证能考上公务员吗?? 有类似安卓版二战风云的游戏吗? qq游戏里面有一个和二战风云一样的游戏叫什么 被动防护网的产品特性 我想问问有没有像二战风云之斯大林格勒那样类型的单机版游戏??? 高速公路被动防护网设计方案 有没有像二战风云一样经营类的战争的游戏,可以练兵打仗,要满足以下条件:1单机,不用联网。2经营类的 SNS被动防护网做护坡工程怎么样 有没有像网页游戏(二战风云、帝国文明)一样的单机游戏, 有没有什么类似二战风云和率土之滨这类的手机游戏? 请推荐款二战游戏 求一个类似二战风云一样的游戏,要能练兵的,不是三国志那种的。 有没有知道和二战风云差不多的游戏,,单机或者破解版就可以了 柔性被动防护网如何布设 铁路被动防护网如何按装 有没有什么经营类的战争游戏,就像二战风云那样的,不过要单机版的,不要电脑游戏,要手机游戏,安卓系统 被动防护网开挖基础存在哪些问题 自考是不是想考什么就考什么啊? 报名之后再上哪考,是大学毕业之后考是在大学的时候就考报名后他们会说在哪考吗? 大学学什么专业,考研就必须考什么专业吗? 为何有人考公务员一次就考上,有人考了很多次却考不上呢? 为什么有些人平时不怎么努力,一到考试就考的很好? 找一个类似二战风云的网页游戏? python怎么写个映射盘符?一键生成 在怀孕8个月时胎停,造成胎停的原因有哪些? 我怀孕八个月没胎心胎儿停止发育我该怎么做 怀孕八个月没胎心怎么回事 在孕期,胎儿在哪个月份,最容易出现“缺氧”的情况? 双斜线表头怎样制 支付宝有医保码就是入保了吗 医保码什么用? 支付宝激活医保码有什么用 医保码怎么使用 支付宝医保激活有什么用 苹果5s锁屏后怎么还继续播放视频?用qq浏览器看的。 为什么一锁屏浏览器上的视频就断掉 小米四,锁屏之前在QQ浏览器界面,锁频以后,再打开手机,就会回到主界面,是怎么回事