我如何排序,摆脱数字和组织?

时间:2013-08-08 19:24:53

标签: python python-3.x

如果我要求某人输入值:

value = input("List numbers: ")

我想组织它:

用户输入= 1,2,3,2

并获得1,2,3的print()作为结果 - 摆脱额外的数字
我该怎么做呢? 并且 我该如何组织它们?                                                                                                                                                                                                                  例如2 1 4 3 5并获得1 2 3 4 5的打印()

2 个答案:

答案 0 :(得分:5)

您似乎正在寻找已排序的唯一数字列表。您可以使用sorted(set(map(int, value.split(",")))来获取该信息。参见演示 -

>>> value = raw_input("List numbers: ")
List numbers: 2, 1, 4, 3, 5, 3, 2, 4, 1
>>> sorted(set(map(int, value.split(','))))
[1, 2, 3, 4, 5]
  1. value.split(',')将输入列表拆分为',',从而返回字符串列表。
  2. map(int, ...)将上面列表中的每个条目转换为整数。
  3. set(...)从上面的列表中进行了设置,从而消除了任何重复。
  4. sorted(...)对集合进行排序并生成列表。
  5. 然后,您可以使用join(...)方法将其转换回字符串。例如,如果您想要使用', '分隔它们,则可以执行

    >>> ", ".join(map(str, sorted(set(map(int, value.split(',')))))) # Or use an equivalent List Comprehension.
    '1, 2, 3, 4, 5'
    

答案 1 :(得分:3)

以下是

的分步指南
  • 接受输入
  • 拆分成列表
  • 将元素转换为整数
  • 删除重复项
  • 对列表进行排序

input = raw_input("Please enter your numbers separated by commas: ")
inputList = input.split(',')              # creates a list from comma delimeters
intList = [int(i) for i in inputList]     # converts to int list
uniqueList = set(intList)                 # removes duplicates
sortedList = sorted(uniqueList)           # converts to ints and sorts

此代码要求用户使用逗号分隔值。这可以改变。

用字符串做同样的事情试试这个

input = raw_input("Please enter your words separated by commas: ")
inputList = input.split(',')              # creates a list from comma delimeters
uniqueList = set(inputList)               # removes duplicates
sortedList = sorted(uniqueList)           # converts to ints and sorts