【问题标题】:How to add "+" or "-" in front of list elements when printing打印时如何在列表元素前面添加“+”或“-”
【发布时间】:2019-09-12 08:09:54
【问题描述】:

我有一个包含多个函数的 python 代码,我想在打印的列表元素前面添加“+”或“-”。例如,如果我有列表[5, 10, 60],并且这些数字中的每一个都代表我的银行帐户中的一个操作。 所以我希望打印看起来像:

-5
-10
+60

所以很清楚我是从银行取出还是收到钱。

我试过list.append("+", cash),这里的现金代表一个函数的值,用于在我的银行中加钱

handling=[]

    elif valg==2:
        global cash
        cash=float(input("beløp: "))
        innskudd(cash)
        handling.append(cash)
    elif valg==5:
        print(handling)

当我尝试.append("+", cash) 时,我收到一条错误消息,指出一次只能添加一个元素

在我将列表 - handling[] 放在函数之外之前,我只返回了一个空列表。如果可能的话,我还希望在函数中包含列表。

【问题讨论】:

    标签: python-3.x list append


    【解决方案1】:

    您可以为此使用format,例如:

    print([format(i, '+0.2f') for i in [20, 0.1, 0.5, -0.89]])
    
    # output: ['+20.00', '+0.10', '+0.50', '-0.89']
    

    您可以阅读有关字符串格式的更多信息here

    【讨论】:

    • f-strings 支持相同的格式化操作,并且显然设计得更快。
    • 您好,谢谢您,在打印列表中的哪些元素之前,我不知道,只会打印最后 3 个操作,或者最后 3 个添加到列表的元素。有没有办法在我将元素添加到列表时添加“+”?
    【解决方案2】:

    您可以修改代码以将单个元素附加到列表中,或使用字符串格式。

    选项 1:将 list.append('+', cash) 更改为

    handling.append( '+' + str(cash) )
    

    这会将cash 转换为字符串,将其与'+' 连接起来,并将结果字符串附加到列表中。

    选项 2:使用 f-strings(可从 Python 3.6 获得,否则使用 @Heike 的答案)

    handling = [f'{i:+0.2f}' for i in cash_values]
    

    【讨论】:

    • 如果您使用第一个选项,handling 中的所有元素都将转换为字符串而不是数字,因此如果您打算使用 handling 中的数字进行任何其他计算,我将使用第二个选项在实际打印之前不要格式化数字。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-27
    • 2014-04-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    相关资源
    最近更新 更多