我知道如何做到这一点的唯一方法是使用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
我该怎么做?问候。
my_dict = {}
my_dict['value1'] = ['new value 1']
my_dict['value1'] += ['new value 2', 'new value 3']
第一行初始化字典,第二行初始化my_dict['value1']
包含一个元素的列表,最后一行将两个元素添加到此列表中。请注意+=
。
注意:如果您不知道字典中是否已存在密钥'value1'
,则需要使用另一种方法(感谢 SirParselot)。如果您不知道它是否存在,请使用它:
my_dict['value2'] = my_dict.get('value2', []) + ['new value 4', 'new value 5']
或者您可以使用setdefault
:
array = {}
array.setdefault('value 1', []).append('new value 1')
array.setdefault('value 1', []).append('new value 2')
你可以像这样使用collections
模块中的defaultdict()
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 语句来检查该键是否已存在。