假设我有以下词典。
params = {'a': 'aaa', 'b': 'bbb', 'c': 'ccc', 'd': 'ddd-hoge'}
使用以下脚本打印时,
>>> print("1: {a} 2: {b} 3: {c} 4: {d}.split('-')[0]".format(**params))
输出将是
"1: aaa 2: bbb 3: ccc 4: ddd-hoge.split('-')[0]"
我应该如何修改脚本以获得与以下相同的输出?
"1:aaa 2:bbb 3:ccc 4:ddd"
答案 0 :(得分:2)
这似乎有效:
params = {'a': 'aaa', 'b': 'bbb', 'c': 'ccc', 'd': 'ddd-hoge'}
print("1: {a} 2: {b} 3: {c} 4: {d}".format(**{
k: v.split('-')[0] for k, v in params.items()}))
这是对dict的处理,然后是打印格式。
1: aaa 2: bbb 3: ccc 4: ddd
答案 1 :(得分:2)
之后简单地分开:
print("1: {a} 2: {b} 3: {c} 4: {d}".format(**params).split('-')[0])
答案 2 :(得分:0)
格式化迷你语言不会处理该复杂性的操作。您必须在外部进行转换。
一种方法是复制字典并更新所需的特定值:
p = params.copy()
p['d'] = params['d'].split('-')[0]
print("1: {a} 2: {b} 3: {c} 4: {d}".format(**p))
您当然也可以修改params
。更优雅的解决方案可能是将转换应用于所有值:
print("1: {a} 2: {b} 3: {c} 4: {d}".format(**{k: v.split('-')[0] for k, v in params.items()}))