前几天遇到的美团笔试题

题目:大概要求输入两组数字,对这两组数值排序然后输出结果

思路:输入两组数,合并两组数,排序

 list1 = raw_input("input some numbers ex 2 7 1 :")
 list2 = raw_input("input some numbers ex 2 7 1 :")

 #将字符串转换成列表

 list11 = list1.split(" ")
 list22 = list2.split(" ")

 #合并列表,将list22追加到list11尾部
 #也可以使用切片来实现追加

 list11.extend(list22)

 #对list11排序
 #关于列表排序  list.sort()与sorted函数最大区别在于,sorted返回的是一个对象,并没有改变原列表
 print sorted(list11)

最终返回的结果可能存在重复的元素,所以去重方法

1.set集合,因为集合中没有重复元素

 >>> list = [1,2,3,1,2,3]
 >>>
 >>> set(list)
 set([1, 2, 3])

#注意:使用set不会保留原有的顺序

2.遍历列表,将所有元素追加到新列表,如果该元素已在新列表存在就不追加

 list = [1,2,1,3,2,]
 list_new = []

 for i in list:
     if i not in list_new:
         list_new.append(i)
 print list_new
   

等等

简单事情简单做

05-08 08:29