网络编程
位置:首页>> 网络编程>> Python编程>> Python字典循环添加一键多值的用法实例

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

作者:风中摇曳的叶子  发布时间:2021-07-15 14:48:48 

标签:Python,字典,一键,多值

循环写入字典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

来源:https://blog.csdn.net/a1084958096/article/details/78375563

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com