python3onelinerfor2列表字符串格式?

2024-04-25 15:24:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一个python3类中有两个列表:

self.keys = ["a","b","c","d"]
self.values = [1,2,3,4]

伦(自动钥匙)==长度(自我价值观),总是。你知道吗

我想创建一个模拟字典打印输出的字符串:{a:1, b:2, c:3, d:4}

我使用的方法包含:

sr = ""
for i,k in enumerate(self.keys):
    sr += "{}:{},".format(k,self.values[i])
return "{%s}" % sr[:len(sr)-1]

在一条线上可能吗?如果没有,有没有更好的办法?你知道吗


Tags: 方法字符串inself列表for字典keys
3条回答

使用zip,然后将其设为dict

keys = ["a","b","c","d"]
values = [1,2,3,4]

dict(zip(keys, values))

输出:

{'b': 2, 'a': 1, 'c': 3, 'd': 4}

如果您想获得与原始代码使用一行代码生成的格式完全相同的格式,可以使用

from itertools import starmap

print("{%s}" % ",".join(starmap("{}:{}".format, zip(keys, values))))

我不确定这是否比你原来的代码可读。你知道吗

为什么不直接印一本字典呢?使用zip生成成对的元组,然后将它们传递给dict constructor。你知道吗

print(dict(zip(self.keys, self.values)))

相关问题 更多 >

    热门问题