为了账号安全,请及时绑定邮箱和手机立即绑定

在字典中嵌套列表

在字典中嵌套列表

开心每一天1111 2023-12-26 15:32:11
我想知道Dictionaries和Lists中嵌套的限制。下面的代码工作正常。dict = {        'apples': {'typ1':'2.99','typ2':'2.49'},        'oranges': '1.99',        'berries':['blue', 'green', 'red']       }但是,如果我尝试在列表中的键下创建一个字典,'berries'如下所示:dict={        'apples': {'typ1':'2.99','typ2':'2.49'},         'oranges':'1.99',         'berries': [ blue = {'typ1':'3.99','typ2'='3.49'}, 'green', 'red']     }这不起作用。有人可以解释一下吗?
查看完整描述

3 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

首先,不要调用你的字典dict。这会掩盖 Python 中的实际类dict,使您无法再引用该类。

现在,'berries': [ blue = {'typ1':'3.99','typ2'='3.49'}, 'green', 'red']是因为语法无效而使一切变得混乱的部分。

使用{...}has值定义的字典

使用定义的列表[...] 不能有键。列表只有元素。

因此,您可以定义一个列表['blue', 'green', 'red'],并将该列表分配给键,'berries'如下所示:

mydict = { ...
         , 'berries': ['blue', 'green', 'red']
         }

您甚至可以混合列表中元素的类型,因此这也是有效的:[{'color': 'blue', 'typ1': 3.99, 'typ2': 3.49}, 'green', 'red']

或者您可以定义一个字典{'blue': {...}, 'green': {...}, 'red': {...}}并将该字典分配给键,'berries'如下所示:

mydict = { ...
         , 'berries': {'blue': {...}, 'green': {...}, 'red': {...}}
         }

但是您无法像最初尝试那样在列表中分配键值对。此外,=无论如何,符号对于键值对来说都是错误的。


查看完整回答
反对 回复 2023-12-26
?
SMILET

TA贡献1796条经验 获得超4个赞

[blue={'typ1':'3.99','typ2'='3.49'},'green', ...]这毫无意义。您正在尝试使用运算符在数组内分配某些内容=。它不是限制,只是语法错误。另外,将 更改=为 a:也不起作用,因为数组不保存键值对。所以看起来你正在混淆字典和数组。



查看完整回答
反对 回复 2023-12-26
?
胡说叔叔

TA贡献1804条经验 获得超8个赞

首先,我看到您创建了错误的格式。您必须遵循 json 格式。

格式错误,

'berries': [blue = {'typ1': '3.99', 'typ2' = '3.49'}, 'green', 'red']


因此上述元素将修改如下:

'berries': [{'blue': {'typ1': '3.99', 'typ2': '3.49'}}, 'green', 'red']}


此外,berry 元素的类型是列表,因此您必须使用“append”函数来添加新元素。所以正确的做法是:

dict['berries'].append({'blue': {'typ1': '3.99', 'typ2': '3.49'}})


总结代码:


dict = {'apples': {'typ1': '2.99', 'typ2': '2.49'}, 'oranges': '1.99', 'berries': ['green', 'red']}

dict['berries'].append({'blue': {'typ1': '3.99', 'typ2': '3.49'}})

print(dict)

预期结果是: {'apples': {'typ1': '2.99', 'typ2': '2.49'}, 'oranges': '1.99', 'berries': ['green', 'red', {'blue': {'typ1': '3.99', 'typ2': '3.49'}}]}


查看完整回答
反对 回复 2023-12-26
  • 3 回答
  • 0 关注
  • 120 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信