字典和嵌套及元素提取

字典

字典和列表的主要区别:
字典无“偏移量”
列表内的元素是有序的,两个列表,如果元素顺序 不同,这两个列表是不同的。
字典是用键值对来提取信息
{ ’ 键’ : 值 , ’ 键 ’ :值 }

del zidian['jian']

字典嵌套(这里有错误)

future = {{'ocean':'yes','coding':'okay','fishery':'will'},{'arduino':'i','openCV':'exciting'}}
TypeError: unhashable type: 'dict'
[{'ocean': 'yes', 'coding': 'okay', 'fishery': 'will'}, {'arduino': 'i', 'openCV': 'exciting'}]

有一个报错

future = [{'ocean':'yes','coding':'okay','fishery':'will'},{'arduino':'i','openCV':'exciting'}]
print(future)
print(future[0][1])

File "e:/python/dictonary.py", line 3, in <module>
    print(future[0][1])
KeyError: 1

正确的

好吧,有错了

future = [['ocean':'yes','coding':'okay','fishery':'will'],'['arduino':'i','openCV':'exciting']]
print(future)
print(future[0][1])

future = [['ocean':'yes','coding':'okay','fishery':'will'],'['arduino':'i','openCV':'exciting']]
                      ^
SyntaxError: invalid syntax

这里的问题在于,列表里边的嵌套列表,用的是字典的,所以应该把 第二个 [ ] 改成 { }

列表的嵌套

lb = [['0','1','2'],['w','z','x'],['a,b,c']]
print (lb[2][0])


a,b,c

列表必须有 ’ ’ 不然会报错

列表嵌套字典

lb1 = [{'王':1,'稙':2,'鑫':3},{'a':4,'b':5,'c':6},['7','8,'9']]
print(lb1)

lb1 = [{‘王’:1,‘稙’:2,‘鑫’:3},{‘a’:4,‘b’:5,‘c’:6},[‘7’,'8,‘9’]]
^
SyntaxError: invalid syntax

看起来好像不能混合嵌套

 lb1 = [{'王':1,'稙':2,'鑫':3},{'a':4,'b':5,'c':6},['7','8',9']]
                                                                ^
SyntaxError: EOL while scanning string literal
lb1 = [{'王':1,'稙':2,'鑫':3},{'a':4,'b':5,'c':6},['7','8','9']]
print(lb1)

[{'王': 1, '稙': 2, '鑫': 3}, {'a': 4, 'b': 5, 'c': 6}, ['7', '8', '9']]

所以,是可以混合嵌套的······
列表列的各个元素不需要 ’ ’
等等····我试试嵌套两个列表一个字典
和一个列表一个字典
是不是嵌套三个列表时需要
毕竟上边有一个列子是不加 ‘ ’ 把 6,7,8当成一个元素打印出来了

lb2 = [['c','d','e'],{'a':1,'b':2}]
print(lb2)
lb3 = [['o,p','q'],['f','g','h']]
print(lb3)


[['c', 'd', 'e'], {'a': 1, 'b': 2}]
[['o,p', 'q'], ['f', 'g', 'h']]

这里报错放在了这里····(所以感觉有些报错不一定是因为那里的错误)

lb4 = ['['o,p','q']'','['f','g','h']']
print(lb4)


lb4 = ['['o,p','q']','['f','g','h']']
              ^
lb5 = [['o','p','q'],'['f','g','h']']
print(lb5)

lb5 = [['o','p','q'],'['f','g','h']']
                                ^
这里把第一个元素的‘’ 取消掉,报错在这里,验证了报错不一定就是那里错的观点····

列表嵌套的元素提取

lb2 = [['c','d','e'],{'a':1,'b':2}]
print(lb2)
print(lb2[0][0])
print(lb2[1]['b'])

[['c', 'd', 'e'], {'a': 1, 'b': 2}]
c
2
[['o,p', 'q'], ['f', 'g', 'h']]

字典嵌套列表

zd1 = {'组一':{'男':'小明','女':小王},'组二':{'雌':,'雄':}}
print(zd1)

 zd1 = {'组一':{'男':'小明','女':小王},'组二':{'雌':,'雄':}}
NameError: name '小王' is not defined
zd12 = {'组一':{'男':'小明','女':'小王'},'组二':{'雌':a,'雄':b}}
print(zd12)

zd12 = {'组一':{'男':'小明','女':'小王'},'组二':{'雌':a,'雄':b}}
NameError: name 'a' is not defined
zd123 = {'组一':{'男':'小明','女':'小王'},'组二':{'雌':9,'雄':0}}
print(zd123)

{'组一': {'男': '小明', '女': '小王'}, '组二': {'雌': 9, '雄': 0}}

字典嵌套后的元素提取

zd123 = {'组一':{'男':'小明','女':'小王'},'组二':{'雌':9,'雄':0}}
print(zd123('组二','雌'))

TypeError: 'dict' object is not callable
解决方法是:
zd123 = {'组一':{'男':'小明','女':'小王'},'组二':{'雌':9,'雄':0}}
print(zd123['组二'],['雌'])

{'雌': 9, '雄': 0} ['雌']
还是错的,我想打印9
zd123 = {'组一':{'男':'小明','女':'小王'},'组二':{'雌':9,'雄':0}}
print(zd123['组二','雌'])
KeyError: ('组二', '雌')
zd123 = {'组一':{'男':'小明','女':'小王'},'组二':{'雌':9,'雄':0}}
print(zd123['组二']['雌'])

9

感觉可以给自己发一个锲而不舍奖了()是读切qie,一开始是其qi二不舍···

最后的最后,来做一个总结

  1. 字典和列表都可以互相嵌套
  2. 列表是有顺序的,字典是无序的
  3. 提取的时候,都是print(mingzi [ ] [ ]) [ ] [ ] 之间不用逗号间隔
  4. 列表里的【】 中的 ‘ ’ 不是一定需要的,只要两个列表及以上才需要;当然,纯列表里的元素也是需要 ‘ ’ 分隔。
  5. 字典的嵌套也要注意符号字典的基本语法 ’ XXX ’ : ······ 后边点点点的内容,数字不用 ’ ’ , 字符串需要 ’ ’
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值