当前位置: 首页 > news >正文

公司简介模板免费下载完整版免费seo培训教程视频

公司简介模板免费下载完整版免费,seo培训教程视频,房屋设计装修app,网站和discuz同步登录问题起因:想在代码中通过已有的列表创建一个字典,但是又不想写循环,更不想手动填,所以用到了字典对象的fromkeys()方法 。 先以一个简单的例子介绍一下该方法: a ["A", "B", "C", &qu…

问题起因:想在代码中通过已有的列表创建一个字典,但是又不想写循环,更不想手动填,所以用到了字典对象的fromkeys()方法 。
先以一个简单的例子介绍一下该方法:

a = ["A", "B", "C", "D"]
# 我们想创建一个以列表A中元素为键的字典b, 那么可以这样写
b = dict.fromkeys(a, 0)      # 显式地指定字典中所有键的值都为0
b = dict.fromkeys(a)         # 使用默认的值,即为None

如果我们的代码中也是这种简单的情况,那就没有接下来的问题了,But,不是。
在我的代码中,假设我想创建的字典b的键来自于列表a, 每个键所对应的默认值我想设置为一个空列表:[],所以代码可以表示为:

a = ["A", "B", "C", "D"]
b = dict.fromkeys(a, [])
print(b)  # 输出结果为:{'A': [], 'B': [], 'C': [], 'D': []}

从输出结果来看,我们的代码似乎没有毛病。但是真正往列表中添加数据的时候出现了问题,请看下面例子:

b["A"].append("xxx")         # 向b["A"]这个列表中添加一个字符串 "xxx"
print(b)  # 输出结果为:{'A': ['xxx'], 'B': ['xxx'], 'C': ['xxx'], 'D': ['xxx']}

所有的键值对中的值都改变了,都变成了["xxx"], 就好像它们是同一个列表一样。为了进一步探究,我们可以使用id()函数获取这些列表的地址,如果地址一样,则说明它们是同一个列表,所以操作一个就代表操作所有。

print(id(b["A"]))   # 输出结果:2969028980160
print(id(b["B"]))   # 输出结果:2969028980160
print(id(b["C"]))   # 输出结果:2969028980160
print(id(b["D"]))   # 输出结果:2969028980160

它们的输出结果完全一致,可见对于列表这个可变类型,fromkeys()函数只是复制了列表的引用,作为默认值。如果想把值初始化为列表,并且后续会进行数据存取操作,那还是建议动动手,写个循环。
就像这样, 这次列表的地址就都不一样了:

for key in a:a[key] = []
http://www.hrbkazy.com/news/52853.html

相关文章:

  • 5g影视企业网站seo服务
  • 沈阳做网站培训网站运营维护的基本工作
  • intellij 网站开发b站推广链接
  • 建设网站宣传页软文兼职
  • 自适应网站开发seo龙华网站建设
  • wordpress编辑器可视化调用seo百度网站排名研究中心关键词首页优化
  • 网站后台修改banner图片位置佳木斯seo
  • 介绍小说的网站模板下载二十条优化措施
  • 做贸易注册网站用自己名字网络营销组合策略
  • 做外贸需要做网站吗最近国家新闻
  • wordpress商用收费不百度seo引流怎么做
  • 西安免费公司网站设计最好的网络营销软件
  • safari网站入口百度官网下载
  • 公司做网站需要提供的材料正规seo大概多少钱
  • 建设网站团队seo怎么推广
  • 哪里有好的免费成品网站程序西安的网络优化公司
  • flash做网站轮播图免费涨粉工具
  • 安装下载app宁波网站优化公司推荐
  • 百度网站优化外包百度收录站长工具
  • 做产品目录的网站百度爱采购服务商查询
  • 网站开发职能怎样做网络推广效果好
  • 包头做网站的公司网盘资源免费观看
  • 网站喜报怎么做武汉做seo公司
  • 京东建站模板龙泉驿网站seo
  • 网络行为管理系统seo是什么学校
  • 做零食网站的选题理由百度快照入口
  • 动漫网站开发毕业设计百度竞价包年推广是怎么回事
  • 已备案网站注册天津网络广告公司
  • wordpress仪表盘改名郑州seo外包公司哪家好
  • 承德网站开发网站推广线上推广