Python 如何修剪f字符串中的空格?

Python 如何修剪f字符串中的空格?,python,f-string,Python,F String,我有一个字符串,我正在格式化和打印使用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

我有一个字符串,我正在格式化和打印使用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=“你好”
>>>打印(f“{x}”.strip())
你好
但是,由于数字和每行上的
可能
之间的间距似乎不一致,因此不太清楚您希望输出是什么样子:

3:may(4,5,6,7,8,12)
4:可能(1,3,6,11,12)
为什么其中一个有空间而另一个没有?添加:您可以利用对象的真实性并简化if语句:

如果可能:
打印(f'{name}:'、f'may({may}')、f'Probably({mably}'))
elif不可能也可能:
打印(f'{name}:',f'may({may})'
elif可能和不可能:
打印(f'{name}:',f'Probably({Probably}'))
elif不可能也不可能:
打印(f'{name}:')
如果你想对真实感着迷,你可以完全摆脱If语句:

print(f“{name}:”,f“may({may})”*bool(may),f“mably({mably})”*bool(mably))
编辑 由于您已通过注释添加了一些上下文,因此可以执行以下操作:

#去掉数字之间的空格
may_str=“,”.join(映射(str,may))
prob_str=“,”。连接(映射(str,可能))
如果可能:
print(f'{name}:may({may_str})Probably({mably_str}'))
elif不可能也可能:
打印(f'{name}:may({may_str}'))
elif可能和不可能:
打印(f'{name}:可能({Probably_str}))
elif不可能也不可能:
打印(f'{name}:')
某些输出,包括“预期输出”中的前导空格:

1:可能(1,2,3,4,5)可能(5,6,2,3,1)
2:可能(5,6,2,3,1)
3:可能(1,2,3,4,5)
4:

可能
可能
是什么类型?列表?我想你改变了预期的格式@martineau@astrochun:我只编辑了问题的标题-所以这不可能是真的。“修剪空格”在哪里?到处都是?最后呢?你的预期/实际结果是什么还不是非常清楚。一天结束时,f字串仍然只是一个字串:从字串两端去掉空白:
str.strip()
@astrochun:我不知道,也没有触及OP的问题主体-因此建议你让他们澄清。我认为
”。加入(可能)
完全有效。他想在两者之间加逗号。但是请记住,如果
may
是int而不是str的列表,那么这将不起作用。您看到空格的原因是
打印(a,b,c)
默认情况下,在打印的每个值a,b和c之间放置一个空格。你可以通过摆弄
print()
函数的关键字参数来解决这个问题,或者,你可以只使用一个f字符串来做你想做的事情。@astrochun修复了,好眼力。