初始化包含字符串和列表的python字典

初始化包含字符串和列表的python字典,python,list,dictionary,Python,List,Dictionary,初始化(例如在循环之前)每个项目中都包含字符串和列表的字典的最佳方法是什么 例如: dict = [("string1", [1,2]), ("string2", [5,6]),..] 因此: 返回: [1,2] 请不要调用变量dict(或list、set等),因为它“掩盖”了现有函数并阻止您使用它们 data = { "string1": [1,2], "string2": [5,6] } print data["string1"] # => [1,2] 如

初始化(例如在循环之前)每个项目中都包含字符串和列表的字典的最佳方法是什么

例如:

dict = [("string1", [1,2]), ("string2", [5,6]),..]
因此:

返回:

[1,2]

请不要调用变量dict(或list、set等),因为它“掩盖”了现有函数并阻止您使用它们

data = {
    "string1": [1,2],
    "string2": [5,6]
}

print data["string1"]    # => [1,2]
如果你有点受虐狂,你也可以试试

data = dict([("string1",[1,2]), ("string2", [5,6])])
或(根据cval的示例)


请不要调用变量dict(或list、set等),因为它“掩盖”了现有函数并阻止您使用它们

data = {
    "string1": [1,2],
    "string2": [5,6]
}

print data["string1"]    # => [1,2]
如果你有点受虐狂,你也可以试试

data = dict([("string1",[1,2]), ("string2", [5,6])])
或(根据cval的示例)

我不建议使用保留字(如
dict
)作为变量名


我不建议使用保留字(如
dict
)作为变量名。

只需将
列表
传递给
dict()
函数,它将返回一个
字典
,并且永远不要将
dict
用作变量名:

>>> dic = [("string1", [1,2]), ("string2", [5,6])]
>>> dict(dic)
{'string2': [5, 6], 'string1': [1, 2]}

只需将
列表
传递给
dict()
函数,它将返回一个
字典
,并且永远不要将
dict
用作变量名:

>>> dic = [("string1", [1,2]), ("string2", [5,6])]
>>> dict(dic)
{'string2': [5, 6], 'string1': [1, 2]}
Python 2.7和Python 3:

或者打开您的结构:

data = {k: v for (k, v) in data}
Python 2.6及之前版本的生成器表达式:

data = dict((entry[0], entry[1]) for entry in data)
dict(data)
或者再次打开包装:

data = dict((k, v) for (k, v) in data)
由于您的数据已经是(键、值)序列的形式,您只需通过将结构传递给dict类型,而无需显式dict或生成器表达式,一次性生成dict:

data = dict((entry[0], entry[1]) for entry in data)
dict(data)
Python 2.7和Python 3:

或者打开您的结构:

data = {k: v for (k, v) in data}
Python 2.6及之前版本的生成器表达式:

data = dict((entry[0], entry[1]) for entry in data)
dict(data)
或者再次打开包装:

data = dict((k, v) for (k, v) in data)
由于您的数据已经是(键、值)序列的形式,您只需通过将结构传递给dict类型,而无需显式dict或生成器表达式,一次性生成dict:

data = dict((entry[0], entry[1]) for entry in data)
dict(data)

不按原样工作-字符串和STR不是同一个变量,与数字和NUM相同。不按原样工作-字符串和STR不是同一个变量,与数字和NUM相同。@MartijnPieters:如果数据已经压缩在一起,我认为不需要使用生成器表达式
dict(data)
应该足够了。@MartijnPieters:如果数据已经压缩在一起,我认为不需要使用生成器表达式<代码>记录(数据)就足够了。