使用列表推导

时间:2018-10-02 17:17:00

标签: python

假设我们有一个名为heights的字符串(人高),如下所示:

"89\n169\n168\n176\n171\n180-"

我想对它们进行排序,所以我的步骤是:

  1. 剥去不必要的字符
  2. 分割'\ n'分隔符,产生一个字符串列表
  3. 将每个数字转换为int
  4. 对列表进行排序
  5. 再次将列表中的每个元素转换回str

所以我要做的是:

heights = sorted(int(height) for height in heights.strip(" -\n").split('\n'))
heights = str(height) for height in heights

这实际上是可行的,但是解决方案是两列表合并,我认为有一种解决方案仅需一行。

3 个答案:

答案 0 :(得分:4)

我认为以下应该起作用: 它应返回字符串值,但按整数值排序。 Sorted带有一个关键参数,该参数告诉它对列表元素执行某些功能并对其进行排序,在这种情况下,我们需要按照所需顺序对它们进行映射以将其映射为整数

heights = sorted(heights.strip(" -\n").split('\n'), key=int)

答案 1 :(得分:0)

如果在字符串列表中需要最终输出,则

undefined
undefined
3957b from function
20GPSChadsCtrl from function

答案 2 :(得分:0)

l = [str(j) for j in sorted([int((i.rstrip('-'))) for i in h.split('\n')])]