Python字典循环添加一键多值的用法实例


Posted in Python onJanuary 20, 2019

循环写入字典key、value、删除指定的键值对:

原文本‘jp_url.txt'每行元素以逗号分隔:

host_key,product_id,product_name,cont_start,cont_end
ah2.zhangyue.com,100002,掌阅,bookId=,&startChapterId
ih2.ireader.com,100002,掌阅,bid=,&
www.ireader.com,100002,掌阅,&bid=,&cid
m.zhangyue.com,100002,掌阅,readbook/,/
c13.shuqireader.com,100003,书旗,bookId=,&chapterId
t.shuqi.com,100003,书旗,bid/,/cid

想要得到:

{‘100002':‘product_name'.......}

代码如下:

def makeDict():
  fileRead=open('jp_url.txt','rb')
  lines=fileRead.readlines()
  read_dict={}#定义字典
  for line in lines:
    line_list=line.split(',')#每行按逗号分隔成列表
    id=line_list[1]#取到id
    name=line_list[2]#取到name
    read_dict[id]=name#此处关键产生键值对,其中key是id
  read_dict.pop('product_id')#删除key为‘product_id'的键值对
  return read_dict
read_dict=makeDict()

循环写入一键对多值:

其中格式{key:[value1,value2,...]}

文本txt格式如下:

guaguashipinliaotianshi|.guagua.cn,
guaguashipinliaotianshi|iguagua.net,
guaguashipinliaotianshi|.17guagua.com,
jiuxiumeinvzhibo|.69xiu.com,
nbazhibo|.estream.cn,
youbo|yb.sxsapp.com,

其中第一列的名字有重复想要一个名字对应多个结果,代码如下:

def makehostDict():
  host_dict={}
  f_allhost=open('xml_host.txt','rb')
  lines=f_allhost.readlines()
  for line in lines:
    line_list=line.split('|')
    name=line_list[0]
    host=line_list[1].strip('\n')
    if host is not '':
      if host_dict.has_key(name):
        host_dict.get(name).append(host)#此处为关键向字典里已经有的key(name)值后继续添加value(host)
      else:
        host_dict.setdefault(name,[]).append(host)#创建{name,[host]}value为列表的格式的字典。
  return host_dict
host_dict=makehostDict()
print host_dict

以上这篇Python字典循环添加一键多值的用法实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python判断字符串是否是json格式方法分享
Nov 07 Python
python3+PyQt5泛型委托详解
Apr 24 Python
numpy中以文本的方式存储以及读取数据方法
Jun 04 Python
Python利用ORM控制MongoDB(MongoEngine)的步骤全纪录
Sep 13 Python
python 在指定范围内随机生成不重复的n个数实例
Jan 28 Python
PyQt5 实现字体大小自适应分辨率的方法
Jun 18 Python
python pandas cumsum求累计次数的用法
Jul 29 Python
python实现屏保程序(适用于背单词)
Jul 30 Python
Python类如何定义私有变量
Feb 03 Python
python 3.8.3 安装配置图文教程
May 21 Python
Python实现一个优先级队列的方法
Jul 31 Python
python实现高效的遗传算法
Apr 07 Python
在PyCharm中批量查找及替换的方法
Jan 20 #Python
Python 移动光标位置的方法
Jan 20 #Python
Pycharm之快速定位到某行快捷键的方法
Jan 20 #Python
python实现画五角星和螺旋线的示例
Jan 20 #Python
在Pycharm中对代码进行注释和缩进的方法详解
Jan 20 #Python
解决pycharm的Python console不能调试当前程序的问题
Jan 20 #Python
django解决跨域请求的问题详解
Jan 20 #Python
You might like
php魔术方法功能与用法实例分析
2016/10/19 PHP
jQuery操作Select的Option上下移动及移除添加等等
2013/11/18 Javascript
Window.Open打开窗体和if嵌套代码
2016/04/15 Javascript
好好了解一下Cookie(强烈推荐)
2016/06/14 Javascript
jQuery实现简单的tab标签页效果
2016/09/12 Javascript
iOS和Android用同一个二维码实现跳转下载链接的方法
2016/09/28 Javascript
100行代码理解和分析vue2.0响应式架构
2017/03/09 Javascript
Node.js 8 中的重要新特性
2017/06/28 Javascript
Angular2 组件交互实例详解
2017/08/24 Javascript
JS实现导出Excel的五种方法详解【附源码下载】
2018/03/15 Javascript
解析vue路由异步组件和懒加载案例
2018/06/08 Javascript
浅析vue-router jquery和params传参(接收参数)$router $route的区别
2018/08/03 jQuery
vue中进入详情页记住滚动位置的方法(keep-alive)
2018/09/21 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
vue图片加载失败时用默认图片替换的方法
2019/08/29 Javascript
javascript二维数组和对象的深拷贝与浅拷贝实例分析
2019/10/26 Javascript
2分钟实现一个Vue实时直播系统的示例代码
2020/06/05 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
[44:47]Ti4 循环赛第三日 iG vs NaVi
2014/07/12 DOTA
[01:10:02]IG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
[40:27]完美世界DOTA2联赛PWL S3 PXG vs GXR 第一场 12.19
2020/12/24 DOTA
python3.3教程之模拟百度登陆代码分享
2014/01/16 Python
Python中用函数作为返回值和实现闭包的教程
2015/04/27 Python
Python中的super()方法使用简介
2015/08/14 Python
Python中的sort()方法使用基础教程
2017/01/08 Python
python从子线程中获得返回值的方法
2019/01/30 Python
Python爬取破解无线网络wifi密码过程解析
2019/09/17 Python
如何分离django中的媒体、静态文件和网页
2019/11/12 Python
Python图像处理库PIL的ImageFont模块使用介绍
2020/02/26 Python
基于python实现音乐播放器代码实例
2020/07/01 Python
解决keras模型保存h5文件提示无此目录问题
2020/07/01 Python
HTML5 Canvas鼠标与键盘事件demo示例
2013/07/04 HTML / CSS
大学生村官任职感言
2014/01/09 职场文书
大学生的创业计划书就该这么写
2014/01/30 职场文书
升国旗仪式主持词
2014/03/19 职场文书
2015年秘书个人工作总结
2015/04/25 职场文书