如何在python 3.7的末尾删除逗号?

问题描述 投票:0回答:2

我得到的

'Left 2, Right 4, Right 2, '

我想要的是:

'Left 2, Right 4, Right 2'

我的代码:

def get_combination(decoded):
    #(eg: get_combination([-2, 4, 2])
    #create an empty string
    comb = ""
    #For each elment in [decoded] check if the elm is < 0 or elm is >= 0
    for elm in decoded:
        if elm >= 0: 
            #if the elm is greater than  0 add to the string comb
            # So the string will read (eg:Right 2) 
            comb += "Right " + str(abs(elm)) + ", "
        elif elm < 0:
            #if the elm is less than 0 add to the string comb
            #So the string will read (eg: Left 4)
            comb += "Left "+ str(abs(elm)) + ", "
    return comb
    #it returns 'Left 2, Right 4, Right 2, '
python string list python-3.7
2个回答
1
投票

直到结尾不要放逗号。方法str.join专为您而设。它在分隔符上被调用(例如str.join),并接受要集中的可迭代字符串。例如:

', '

可以使用def get_combination(decoded): def encode(x): if x < 0: return f'Left {abs(x)}' return f'Right {x}' return ', '.join(encode(x) for x in decoded) 将最后一行重写为>>

map

如果您想要一个真正难以辨认的单行代码(我不建议这样做,但是python非常容易编写):

map

甚至(将f字符串滥用到最大):

return ', '.join(map(encode, decoded))

-2
投票

仅使用', '.join(f'Left {abs(x)}' if x < 0 else f'Right {x}' for x in decoded) 这将删除倒数第二个字符,这就是您想要的,删除最后一个逗号。由于逗号后有空格,请删除倒数第二个而不是最后一个字符。

© www.soinside.com 2019 - 2024. All rights reserved.