如果我有一个列表列表和一个列表作为值的字典:
ll = [['wed', 'thurs'], ['fri', 'sat', 'sun']]
d = {'week1':['mon', 'tues']}
如何在同一个密钥中添加其他列表? 这样我得到了:
new_d = { 'week1': ['mon', 'tues'], ['wed', 'thurs'], ['fri', 'sat', 'sun'] }
或
new_d = { 'week1': (['mon', 'tues'], ['wed', 'thurs'], ['fri', 'sat', 'sun']) }
如果我这样做:
for item in ll:
new_d['week1'].append(item)
我结束了类似的事情:
{'week1':['mon', 'tues', ['wed', 'thurs'], ['fri', 'sat', 'sun']] }
这不是我想要的
答案 0 :(得分:0)
构建一个 new 元组,将旧的作为嵌套列表加上其他两个。由于您希望整个结果都是元组,因此您还必须将ll
转换为元组:
new_d = {}
new_d['week1'] = (d['week1'],) + tuple(ll)
这与在字典之外构建元组没什么不同:
>>> ll = [['wed', 'thurs'], ['fri', 'sat', 'sun']]
>>> d = {'week1':['mon', 'tues']}
>>> d['week1']
['mon', 'tues']
>>> (d['week1'],) + tuple(ll)
(['mon', 'tues'], ['wed', 'thurs'], ['fri', 'sat', 'sun'])
如果您希望它是一个列表而不是郁金香,请构建:
new_d['week1'] = [d['week1']] + ll
答案 1 :(得分:0)
你几乎得到了它。关键信息是,字典的值需要是单个对象。
在上面的示例中,您将一些列表对象附加到列表中,为您提供您所描述的列表,如下所示:
[ 'mon',
'tues',
['wed', 'thur'],
['fri', 'sat', 'sun']
]
所以现在你必须做出选择。如果您希望字典的值是列表列表,那么您希望将初始字典值作为列表列表,只需其中的单一清单。这样可以将您的示例更改为以下内容(请注意那里的双括号 - 列表中的单个列表):
d = {'week1':[['mon', 'tues']]}
现在,当您附加到值时,您会将新列表对象附加到列表中作为值,从而为您提供如下所示的结构:
[ ['mon', 'tues'],
['wed', 'thur'],
['fri', 'sat', 'sun']
]