2024-04-20 12:21:03 发布
网友
我的代码:
a = ['name1 2 3 4', 'name2 5 6 7'] dicto = {} i = 0 while (i < 2): dicto[a[i][:(a[i].find(''))]] = a[i][a[i].find('') + 1:] i += 1 print(dicto)
期望输出:
{'name1':'2 3 4','name2':'5,6,7'}
我的输出:
{'': 'ame2 5 6 7'}
您可以使用字典理解和序列解包:
a = ['name1 2 3 4', 'name2 5 6 7'] res = {k: ' '.join(v) for k, *v in map(str.split, a)} print(res) {'name1': '2 3 4', 'name2': '5 6 7'}
可以将dict构造函数与以下生成器表达式一起使用str.split():
str.split()
dict(s.split(maxsplit=1) for s in a)
这将返回:
{'name1': '2 3 4', 'name2': '5 6 7'}
如果我们在a的每个子列表上使用.split(),我们将得到
a
.split()
a = [['name1', '2', '3', '4'], ['name2', '5', '6', '7']]
现在我们可以决定使用.split()的name索引作为我们的key,其余的片[1:]作为我们的值。为此,我们可以使用传统的循环
name
key
[1:]
dicta = {} for i in a: dicta[i.split()[0]] = i.split()[1:] # {'name1': ['2', '3', '4'], 'name2': ['5', '6', '7']}
这可以使用字典理解来缩短
dicta = {i.split()[0]: i.split()[1:] for i in a}
您可以使用字典理解和序列解包:
可以将dict构造函数与以下生成器表达式一起使用
str.split()
:这将返回:
如果我们在
a
的每个子列表上使用.split()
,我们将得到a = [['name1', '2', '3', '4'], ['name2', '5', '6', '7']]
现在我们可以决定使用
.split()
的name
索引作为我们的key
,其余的片[1:]
作为我们的值。为此,我们可以使用传统的循环这可以使用字典理解来缩短
相关问题 更多 >
编程相关推荐