创建一个函数genSet(),它接受一个数字列表并在python中返回一个有序集

时间:2017-04-28 06:39:13

标签: python-2.7 python-3.x

我是python的新手并尝试在pyschool上解决此示例 我需要写一个函数,

a)取一个数字列表

b)从列表

中删除重复项

c)返回一个有序集:

在python中,例如:

>>> genSet([5,4,8,4,9,8])
[4, 5, 8, 9 ]
>>> genSet([3,-2,-1,-1,3,-2,0])
[-2, -1, 0, 3 ]

2 个答案:

答案 0 :(得分:0)

删除重复项:

{
  "name": "ionic-hello-world",
  "version": "0.0.0",
  "author": "Ionic Framework",
  "homepage": "http://ionicframework.com/",
  "private": true,
  "scripts": {
    "clean": "ionic-app-scripts clean",
    "build": "ionic-app-scripts build",
    "ionic:build": "ionic-app-scripts build",
    "ionic:serve": "ionic-app-scripts serve"
  },
  "dependencies": {
    "@angular/common": "4.0.2",
    "@angular/compiler": "4.0.2",
    "@angular/compiler-cli": "4.0.2",
    "@angular/core": "4.0.2",
    "@angular/forms": "4.0.2",
    "@angular/http": "4.0.2",
    "@angular/platform-browser": "4.0.2",
    "@angular/platform-browser-dynamic": "4.0.2",
    "@ionic-native/core": "3.4.2",
    "@ionic-native/splash-screen": "3.4.2",
    "@ionic-native/status-bar": "3.4.2",
    "@ionic/storage": "2.0.1",
    "ionic-angular": "3.1.0",
    "ionicons": "3.0.0",
    "rxjs": "5.1.1",
    "sw-toolbox": "3.4.0",
    "zone.js": "^0.8.5"
  },
  "devDependencies": {
    "@ionic/app-scripts": "1.3.6",
    "typescript": "~2.2.1"
  },
  "cordovaPlugins": [
    "cordova-plugin-whitelist",
    "cordova-plugin-console",
    "cordova-plugin-statusbar",
    "cordova-plugin-device",
    "cordova-plugin-splashscreen",
    "ionic-plugin-keyboard"
  ],
  "cordovaPlatforms": [],
  "description": "ISmartpremises: An Ionic project"
}

对列表进行排序:

>>> t = [1, 2, 3, 1, 2, 5, 6, 7, 8]
>>> t
[1, 2, 3, 1, 2, 5, 6, 7, 8]
>>> list(set(t))
[1, 2, 3, 5, 6, 7, 8]
>>> s = [1, 2, 3]
>>> list(set(t) - set(s))
[8, 5, 6, 7]

现在您可以编写自定义函数,删除重复项并进行排序。

以下代码段有效:

>>> sorted([5, 2, 3, 1, 4])
[1, 2, 3, 4, 5]

如果你想迭代多个列表,试试这个:

def genSet(clist):
    t = list(set(clist))
    return sorted(t)

if __name__ == "__main__":
    print genSet([5,4,8,4,9,8])
    print genSet([3,-2,-1,-1,3,-2,0])

答案 1 :(得分:0)

set会自动删除重复项,sorted会对列表进行排序。

def genSet(l):
  return (sorted(set(l)))