是否可以从字典中打印可变数量的key+值str.format格式()? 如果能在python2中起作用那就太好了。你知道吗
假设我有一个字典,里面有一些键+值,我必须打印这些键的键+值,这些键存储在一个列表/元组中。你知道吗
dict1 = { 'k1':'v1', 'k2':'v2', 'k3':'v3'}
to_print = ('k1', 'k2')
string = ''
for i in dict1:
if i in to_print:
string += "{" + i + "} " + ', '
string = string.format(**dict1)
print(string[:-2])
以上代码给出
v1 , v2
我希望它的格式如下:
[k1] v1 , [k2] v2
升级版:
如果字典在列表中,并且我需要在一行中打印一个字典中的键/值,则该解决方案面临挑战,例如:
list1 = [ { 'k1':'v1', 'k2':'v2', 'k3':'v3'} , { 'k1':'v4', 'k2':'v5', 'k3':'v6'} ]
to_print = ('k1', 'k2')
for i in list1:
for k,v in i.items():
if k in to_print:
elements = []
elements.append(f"[{k}]: {v}")
print(", ".join(elements))
[k1]: v1
[k2]: v2
[k1]: v4
[k2]: v5
我需要这样的东西:
[k1]: v1 , [k2]: v2
[k1]: v4 , [k2]: v5
之前,我通过SO中的分组函数解决了这个问题:
def grouped(iterable, n):
"s -> (s0,s1,s2,...sn-1), (sn,sn+1,sn+2,...s2n-1), (s2n,s2n+1,s2n+2,...s3n-1), ..."
return zip(*[iter(iterable)] * n)
有什么好办法吗?你知道吗
好吧,我想:
elements = []
for i in list1:
elements = []
for k,v in i.items():
if k in to_print:
elements.append(f"[{k}]: {v}")
print(", ".join(elements))```
或者可以使用列表理解来缩短时间:
将产生:
相关问题 更多 >
编程相关推荐