首页 > 编程 > Python > 正文

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

2019-11-25 13:26:35
字体:
来源:转载
供稿:网友

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

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

host_key,product_id,product_name,cont_start,cont_endah2.zhangyue.com,100002,掌阅,bookId=,&startChapterIdih2.ireader.com,100002,掌阅,bid=,&www.ireader.com,100002,掌阅,&bid=,&cidm.zhangyue.com,100002,掌阅,readbook/,/c13.shuqireader.com,100003,书旗,bookId=,&chapterIdt.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_dictread_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_dicthost_dict=makehostDict()print host_dict

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表