新手问 Python 里的字典只能两两一组么?我想放三四五六七一组怎么办?

2020-07-12 23:21:47 +08:00
 Ninesir
刚学两天

新手问 python 里的字典只能两两一组么?我想放三四五六七一组怎么办?
dic = {'甲':'A':1,'乙':'B':8,'丙':'C':3}
2752 次点击
所在节点    Python
9 条回复
Trim21
2020-07-12 23:22:30 +08:00
dic = {'甲':{'A':1},'乙':{'B':8},'丙':{'C':3}}
Ninesir
2020-07-12 23:26:16 +08:00
@Trim21 只能两两一组嵌套是吧。
MooRider
2020-07-12 23:36:17 +08:00
dict 的 value 不一定为 str, 可以为一个 list, touple 或者是 dict.
所以只需要{"A":[list1,list2]}
或者像一楼那样就行
JieS
2020-07-13 08:34:02 +08:00
键值对,key: value,键和值只能为一个对象…
"name":["小明","小白"]
可以用列表来嵌套多个值
InkStone
2020-07-13 09:50:32 +08:00
除了一楼的写法之外,还可以用 tuple 做 key 。

不过 tuple 有个缺点,它是有序的。
你可以自己实现一个类,内部用 set,然后把它写成 hashable 的,这样就可以支持 unordered tuple……甚至还能支持部分匹配
edk24
2020-07-13 09:57:54 +08:00
list = [['甲', 'A', 1], ...]

用列表也祥呀 哈哈
lithbitren
2020-07-13 11:48:26 +08:00
frozenset 就是可 hash 的 set
volvo007
2020-07-13 12:07:47 +08:00
只能内部嵌套,除了元组,也可以在内部嵌套 named tuple 这种类型

set 的话,感觉并不是一个很高效的数据结构,还是避免直接用吧
SingeeKing
2020-07-18 17:45:10 +08:00
我感觉 lz 所谓「一组」的用途可能用 namedtuple 组成的 list 更合适一些

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/689412

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX