我有一个正在使用 f 字符串格式化和打印的字符串,我需要消除列表元素之间的空格(以及第一个以“:”结尾的项目之后)。这是我的代码:
if len(probably) > 0 and len(might) > 0:
print(f'{name}:',f'Might({might})', f'Probably({probably})')
elif len(probably) == 0 and len(might) > 0:
print(f'{name}:',f'Might({might})')
elif len(probably) > 0 and len(might) == 0:
print(f'{name}:',f'Probably({probably})')
elif len(probably) == 0 and len(might) == 0:
print(f'{name}:')
这是目前的样子:
1: Might(4, 6, 7) Probably(11)
2: Might(5, 8, 10) Probably(9)
3: Might(4, 5, 6, 7, 8, 12)
4: Might(1, 3, 6, 11, 12)
5: Might(2, 3, 8, 10) Probably(9)
6: Might(1, 3, 4, 7, 11)
7: Might(1, 3, 6)
8: Might(2, 3, 5, 9, 10)
9: Might(8, 10) Probably(2, 5)
10: Might(2, 5, 8, 9)
11: Might(4, 6) Probably(1)
12: Might(3, 4)
13:
这就是我需要的样子
1:Might(4,6,7) Probably(11)
2:Might(5,8,10) Probably(9)
3:Might(4,5,6,7,8,12)
4:Might(1,3,6,11,12)
5:Might(2,3,8,10) Probably(9)
6:Might(1,3,4,7,11)
7:Might(1,3,6)
8:Might(2,3,5,9,10)
9:Might(8,10) Probably(2,5)
10:Might(2,5,8,9)
11:Might(4,6) Probably(1)
12:Might(3,4)
13:
f 字符串归根结底仍然只是一个字符串:
>>> x = "hello"
>>> print(f" {x} ".strip())
hello
但是,不太清楚您期望的输出是什么样子,因为每行上的数字和
Might
之间的间距似乎不一致:
3: Might(4,5,6,7,8,12)
4:Might(1,3,6,11,12)
为什么其中一个有空格,而另一个却没有?要补充的是:您可以利用对象的真实性并简化您的 if 语句:
if probably and might:
print(f'{name}:', f'Might({might})', f'Probably({probably})')
elif not probably and might:
print(f'{name}:', f'Might({might})')
elif probably and not might:
print(f'{name}:', f'Probably({probably})')
elif not probably and not might:
print(f'{name}:')
如果你想追求真实,你可以完全摆脱 if 语句:
print(f"{name}:", f"Might({might})"*bool(might), f"Probably({probably})"*bool(probably))
由于您已通过评论添加了一些上下文,因此您可以执行以下操作:
# Get rid of spaces between numbers
might_str = ",".join(map(str, might))
prob_str = ",".join(map(str, probably))
if probably and might:
print(f' {name}:Might({might_str}) Probably({probably_str})')
elif not probably and might:
print(f' {name}:Might({might_str})')
elif probably and not might:
print(f' {name}:Probably({probably_str})')
elif not probably and not might:
print(f' {name}:')
一些输出,包括“预期输出”中的前导空格:
1:Might(1,2,3,4,5) Probably(5,6,2,3,1)
2:Probably(5,6,2,3,1)
3:Might(1,2,3,4,5)
4: