免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: wiliiwin
打印 上一主题 下一主题

字典赋值的报错 [复制链接]

论坛徽章:
8
戌狗
日期:2014-09-26 16:39:44水瓶座
日期:2014-10-10 02:06:57金牛座
日期:2014-10-11 23:04:042015亚冠之首尔
日期:2015-06-23 15:37:0015-16赛季CBA联赛之天津
日期:2016-01-22 18:58:2915-16赛季CBA联赛之佛山
日期:2016-05-31 19:18:0815-16赛季CBA联赛之同曦
日期:2016-08-10 16:26:3315-16赛季CBA联赛之辽宁
日期:2018-01-10 11:47:40
11 [报告]
发表于 2014-11-18 11:29 |只看该作者
回复 10# Linux_manne
和perl不一样,perl是可以的,想了下确实不可以,因为这样的话无法知道是数组的数组,还是哈希的哈希,我一直用perl的技巧在python上使用,看来这个需要转变下


   

论坛徽章:
9
2015亚冠之大阪钢巴
日期:2015-06-04 11:47:30丑牛
日期:2015-01-22 15:49:26巳蛇
日期:2015-01-22 10:11:18巨蟹座
日期:2014-11-20 10:55:03天蝎座
日期:2014-11-16 22:10:26处女座
日期:2014-11-16 11:01:10申猴
日期:2014-09-19 11:12:37双鱼座
日期:2014-07-25 10:09:54程序设计版块每日发帖之星
日期:2015-08-24 06:20:00
12 [报告]
发表于 2014-11-18 15:09 |只看该作者
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3. import re

  4. h=dict()
  5. fd=open('urfile','r')
  6. for line in fd:
  7.     flag=0
  8.     m=re.match('\[(\w+)\]',line)
  9.     if m:
  10.         outer_key=m.group(1)
  11.         h[outer_key]=dict()

  12.     elif flag==0:
  13.         m=re.match('(.*)=(.*)',line)
  14.         if m:
  15.             h[outer_key][m.group(1)]=m.group(2)
  16. print h
  17. fd.close()
复制代码

论坛徽章:
8
戌狗
日期:2014-09-26 16:39:44水瓶座
日期:2014-10-10 02:06:57金牛座
日期:2014-10-11 23:04:042015亚冠之首尔
日期:2015-06-23 15:37:0015-16赛季CBA联赛之天津
日期:2016-01-22 18:58:2915-16赛季CBA联赛之佛山
日期:2016-05-31 19:18:0815-16赛季CBA联赛之同曦
日期:2016-08-10 16:26:3315-16赛季CBA联赛之辽宁
日期:2018-01-10 11:47:40
13 [报告]
发表于 2014-11-18 15:24 |只看该作者
回复 12# Buring__
是的 这样是可以的,python不能直接hash[][]的形式来赋值


   

论坛徽章:
1
2015七夕节徽章
日期:2015-08-21 17:58:43
14 [报告]
发表于 2014-11-19 09:46 |只看该作者
问题应该出在这里
hash[outer_key][matchobj.group(1)]=matchobj.group(2)


for之前 hash = {}
hash[“XXX”]都没有赋值,hash["XXX"]["YYY"]当然会报错了

论坛徽章:
8
戌狗
日期:2014-09-26 16:39:44水瓶座
日期:2014-10-10 02:06:57金牛座
日期:2014-10-11 23:04:042015亚冠之首尔
日期:2015-06-23 15:37:0015-16赛季CBA联赛之天津
日期:2016-01-22 18:58:2915-16赛季CBA联赛之佛山
日期:2016-05-31 19:18:0815-16赛季CBA联赛之同曦
日期:2016-08-10 16:26:3315-16赛季CBA联赛之辽宁
日期:2018-01-10 11:47:40
15 [报告]
发表于 2014-11-19 11:23 |只看该作者
回复 14# shreychen

在python是不允许的,但是在perl是可以的,我是按perl的习惯来的。


   

论坛徽章:
0
16 [报告]
发表于 2014-11-19 19:31 |只看该作者
字典不存在二维的说法,说以dit1=["A"]={"B":"test"}这样追加才行
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP