我知道如何做到这一点的唯一方法是使用php,但我希望在python中获得相同的结果。
PHP代码:
<?php
$array = array();
$array['value1'][] = 'new value 1';
$array['value1'][] = 'new value 2';
?>
我有这段代码。
array = dict()
array['value 1'] = 'new value 1'
#array['value 1'].append('new value 2') - Error - only works with list
我怎么能这样做? 问候。
答案 0 :(得分:1)
my_dict = {}
my_dict['value1'] = ['new value 1']
my_dict['value1'] += ['new value 2', 'new value 3']
第一行初始化字典,第二行将my_dict['value1']
初始化为包含一个元素的列表,最后一行将两个元素添加到此列表中。请注意+=
。
注意:如果您不知道密钥'value1'
是否已存在于dict中,则需要使用其他方法(感谢SirParselot)。如果你不知道它是否存在,请使用它:
my_dict['value2'] = my_dict.get('value2', []) + ['new value 4', 'new value 5']
答案 1 :(得分:1)
或者您可以使用setdefault
:
array = {}
array.setdefault('value 1', []).append('new value 1')
array.setdefault('value 1', []).append('new value 2')
答案 2 :(得分:1)
您可以使用defaultdict()
模块中的collections
,如此
import collections
my_dict = collections.defaultdict(list)
my_dict['value1'].append('new value 1')
my_dict['value1'].append('new value 2')
{'value1': ['new value 1', 'new value 2']}
defaultdict()
将类型作为参数,每次创建新键时,它都会有一个空列表作为值。这对于将列表作为值特别有用。这样您就不需要if语句来检查该密钥是否已经存在。