Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何向列表中添加键、值对?_Python_List_Dictionary - Fatal编程技术网

Python 如何向列表中添加键、值对?

Python 如何向列表中添加键、值对?,python,list,dictionary,Python,List,Dictionary,我希望能够创建一个键列表,列表对(我认为这是描述我想要的解决方案的最准确的方式…) 我有一个字典列表,我想为每个字典添加一个元素,这是一个字典列表(一口,我知道…) 为此,我尝试将键、值对附加到列表中。当我这样做时,我得到一个语法错误,表面上是在key:value对中的冒号上出错的 这是我的密码: d_l[0]['abilities'] = list() d_l[0]['abilities'].append(abilities_m_l[job_row]['Element Name']:list(

我希望能够创建一个键列表,列表对(我认为这是描述我想要的解决方案的最准确的方式…)

我有一个字典列表,我想为每个字典添加一个元素,这是一个字典列表(一口,我知道…)

为此,我尝试将键、值对附加到列表中。当我这样做时,我得到一个语法错误,表面上是在key:value对中的冒号上出错的

这是我的密码:

d_l[0]['abilities'] = list()
d_l[0]['abilities'].append(abilities_m_l[job_row]['Element Name']:list()) # ability: stats about ability
其中d_l是一个字典列表,“能力”是我正在创建的一个键

这是我的错误(插入符号在冒号上(尽管在过去它错误地标记了错误的位置))

如果有帮助,这是所需的总体结构:

{
    'job':'clerk', 'description': 'works in a bank', 'abilities': [
        'math': [
            'imp': {
                'Data Value': 4.5,
                'N' : 8,
                'S_E': 0.19                 
            },
            'level': {
                'Data Value': 4.75,
                'N': 8,
                'S_E': 0.25
            }
        ],
        'english': [
            'imp': {

            },
            'level': {

            }
        ],
        'dexterity': [
            'imp':{

            },
            'level': {

            }
        ]
    ]
},

非常感谢!如果您看到我在上面的安排中存在明显的缺陷(也许我应该使用字典而不是列表),请告诉我。

您想附加一个
dict
-注意
{}
,例如:

.append( {abilities_m_l[job_row]['Element Name']:list()} )

对于空列表使用
[]
更具python风格和效率…

谢谢Jon!非常有用。为什么效率更高?因为我不调用函数?@goldisfine主要是因为编译器可以优化
[]
,而
list
可能需要一个可数…@goldisfine:是的,
list()
是一个全局查找(查找名为
list
的对象),然后是一个调用(调用与名称
list
关联的对象)<代码>[]立即被视为空列表对象。
.append( {abilities_m_l[job_row]['Element Name']:list()} )