将PHP代码转换为python - 将新值附加到dict中的相同键

时间:2016-02-10 19:51:47

标签: php python

我知道如何做到这一点的唯一方法是使用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

我怎么能这样做? 问候。

3 个答案:

答案 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语句来检查该密钥是否已经存在。