【问题标题】:Sort a list of strings that contain integers while ignoring white space in python对包含整数的字符串列表进行排序,同时忽略python中的空格
【发布时间】:2020-06-27 06:18:22
【问题描述】:

我想对每个元素之间有空格的列表进行排序。当我尝试使用sorted() 对其进行排序时,它也会对空白进行排序。我不要那个。如何在 python 中实现?

A = '1 10'
sorted(A)
print(A)

输出:

[' ', '0', '1', '1']

我想要的输出:

'1 10'

【问题讨论】:

  • 您的示例尽可能含糊。给我们一个比这更好的例子。你的输入是'1 10',你的输出是'1 10'?请看提供minimal reproducible example

标签: python python-3.x string sorting


【解决方案1】:

您的变量 A 当前是一个字符串。您想首先使用 split() 函数转换为列表。 split 函数用于根据给定的分隔符将字符串转换为列表。例如,

x=A.split(" ") 会给你一个列表 x 作为 ['1','10'],然后你可以使用 x.sort()x=sorted(x) 对 x 本身进行排序。 sorted 和 sort 的区别在于 sorted 会返回一个新的列表,而 sort 对给定的列表进行排序。

【讨论】:

    【解决方案2】:

    我认为您可以尝试以下方法。

    string = '1 10'
    final = sorted(string.split(), key = int)
    final = " ".join(final)
    

    【讨论】:

      【解决方案3】:

      在得到排序后的数字列表后,使用 join 返回一个带有空格的字符串。

      【讨论】:

        【解决方案4】:

        您可以split 然后对其进行排序。在sorted中使用key参数

        A='1 10'
        out=sorted(A.split(),key=int)
        # ['1','10']
        

        根据我了解的其他答案,您可以使用join

        ' '.join(sorted(A.split(),key=int))
        # '1 10'
        

        【讨论】:

        • 你错过了它们之间的空间!!
        猜你喜欢
        • 2022-01-11
        • 1970-01-01
        • 2017-04-07
        • 2014-06-21
        • 2022-01-02
        • 2020-05-02
        • 1970-01-01
        • 2021-03-30
        • 1970-01-01
        相关资源
        最近更新 更多