• Python中关于列表排序并保留id/enumerate()使用方法


    新手才开始写博客,不周之处请原谅,有错误请指正。

    >>> a = [1,4,2,5,3]
    >>> b = sorted(enumerate(a),key = lambda x:x[1])
    >>> b
    [(0, 1), (2, 2), (4, 3), (1, 4), (3, 5)]
    >>> b[1]
    (2, 2)
    >>> b[1][1]
    2
    >>> b[1][0]
    2

      b = sorted(enumerate(a),key = lambda x:x[1],reverse = False)

    这儿可以加第三个参数,reverse = True按降序排列,reverse = False按升序排列

    关于enumerate()使用方法(copy来的)

    enumerate()说明

    • enumerate()是python的内置函数
    • enumerate在字典上是枚举、列举的意思
    • 对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate将其组成一个索引序列,利用它可以同时获得索引和值
    • enumerate多用于在for循环中得到计数
    • 例如对于一个seq,得到:

      (0, seq[0]), (1, seq[1]), (2, seq[2])
    • enumerate()返回的是一个enumerate对象,例如:
      这里写图片描述

    enumerate()使用

    • 如果对一个列表,既要遍历索引又要遍历元素时,首先可以这样写:
    list1 = ["这", "是", "一个", "测试"]
    for i in range (len(list1)):
        print i ,list1[i]
    • 1
    • 2
    • 3
    • 上述方法有些累赘,利用enumerate()会更加直接和优美:
    list1 = ["这", "是", "一个", "测试"]
    for index, item in enumerate(list1):
        print index, item
    >>>
    0 这
    1 是
    2 一个
    3 测试
    • enumerate还可以接收第二个参数,用于指定索引起始值,如:
    list1 = ["这", "是", "一个", "测试"]
    for index, item in enumerate(list1, 1):
        print index, item
    >>>
    1 这
    2 是
    3 一个
    4 测试

    补充

    如果要统计文件的行数,可以这样写:

    count = len(open(filepath, 'r').readlines())
    • 1

    这种方法简单,但是可能比较慢,当文件比较大时甚至不能工作。

    可以利用enumerate():

    count = 0
    for index, line in enumerate(open(filepath,'r')): 
        count += 1
    Monkey
  • 相关阅读:
    取出html中指定id的元素的内容
    VisualStudio使用GIT
    HTTP 错误 404.2
    ECMA-262,第 5 版 最新 JavaScript 规范
    JavaScript 中 Object ,Prototype 相关的属性和方法
    JavaScript 函数大全
    jquery.inputmask 输入框input输入内容格式限制插件
    ASP.NET MVC Model验证
    Java:Maven依赖包下载
    myeclipse使用maven教程
  • 原文地址:https://www.cnblogs.com/monkeyT/p/9063360.html
Copyright © 2020-2023  润新知