我有一个类似以下的列表:
some_list = [
'fullname',
'John Kroes',
'email',
'johnkroes1978@example.com',
'password',
'3kKb5HYag'
]
Run Code Online (Sandbox Code Playgroud)
如何将其转换为如下所示的词典?
some_dict = {
'fullname': 'John Kroes',
'email': 'johnkroes1978@example.com',
'password': '3kKb5HYag'
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用嵌套循环来完成此操作,但是我不知道如何先记下键,然后记下其值。
我还在循环之前创建了一个临时变量,然后在其中写下了当前循环元素,并尝试在try中将其用作值。
有很多方法。一种非常简单的方法是拆分列表:
keys = some_list [::2]
vals = some_list [1::2]
some_dict = dict(zip(keys, vals))
Run Code Online (Sandbox Code Playgroud)
更通用的方法可能是使用迭代器:
it = iter(some_list)
some_dict = dict(zip(it, it))
Run Code Online (Sandbox Code Playgroud)
这种方法更好,原因有二。首先,您不必制作临时列表。其次,它适用于任何可迭代的序列,即使它不是可索引的序列。
要使用的参数zip 必须是相同的迭代器对象才能起作用:每次调用都next将迭代器向前移动,因此获取输出元组的键会使迭代器立即获得值。
这是一线等效:
some_dict = dict(zip(*[iter(some_list)] * 2))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44 次 |
| 最近记录: |