Python:如何使用split函数格式化字符串?

时间:2018-06-01 03:47:19

标签: python python-2.7

假设我有以下词典。

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"

3 个答案:

答案 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()}))