一、数字的处理函数

(一)int()

取整数部分,与正负号无关,举例如下:

  1. print(int(-3.6), int(-2.5), int(-1.4))
  2. print(int(3.6), int(2.5), int(1.4))
  3.  
  4. 运行结果如下:

 -3 -2 -1
 3 2 1

(二)//

整除并且向下取整,举例如下:

  1. print(7//2, 7//-2, -7//2, -(7//2))
  2. print(2//3, -2//3, -1//3)
  3.  
  4. 运行结果如下:

 3 -4 -4 -3
 0 -1 -1

(三)round()

四舍六入五取偶,举例如下:

  1. print(round(2.5), round(2.5001), round(2.6))
  2. print(round(3.5), round(3.5001), round(3.6), round(3.3))
  3. print(round(-2.5), round(-2.5001), round(-2.6))
  4. print(round(-3.5), round(-3.5001), round(-3.6), round(-3.3))
  5.  
  6. 运行结果如下:

 2 3 3
 4 4 4 3
 -2 -3 -3
 -4 -4 -4 -3

(四)floor()

向下取整,举例如下:

  1. import math
  2.  
  3. print(math.floor(2.5), math.floor(-2.5))
  4.  
  5. 运行结果如下:
    2 -3

(五)ceil()

向上取整,举例如下:

  1. import math
  2.  
  3. print(math.ceil(2.5), math.ceil(-2.5))
  4.  
  5. 运行结果如下:
    3 -2

(六)max()

获取最大值

(七)min()

获取最小值

(八)pow(x, y)

求次方(x的y次方),相当于x**y,也可以写成这种形式。

(九)sqrt()

求平方根,举例如下:

  1. import math
  2.  
  3. print(math.sqrt(3))
  4.  
  5. 运行结果如下:
    1.7320508075688772

(十)bin()

将数字转换为二进制

(十一)oct()

将数字转换为八进制

(十二)hex()

将数字转换为十六进制

二、列表

(一)定义

  • 列表是可变的、线性的数据结构
  • 列表内的个体称为元素,由若干个元素组成列表
  • 元素可以是任意对象(数字、字符串、对象、列表等)
  • 列表内的元素是有序的,可以使用索引

(二)对列表的相关操作

1、列表索引访问

列表可以通过索引去访问其中的元素,索引的顺序是从0开始的(从左向右),-1索引表示列表中的最后一个元素,依次类推。

  1. lst = ['a', 3, 'b']
  2. print(lst[1])
  3.  
  4. 运行结果如下:
    3

2、list.index(value, [start, [stop]])

  • 通过值value,从指定区间[start, stop]查找元素中是否有这个值,如果有则返回对应位置的索引,如果没有,就抛异常ValueError。
  • 时间复杂度:O(n),随着数据规模的增大,效率下降,所以尽量避免使用这个方法。
  1. lst = ['a', 3, 'b']
  2. print(lst.index('a'))
  3.  
  4. 运行结果如下:
    0

3、list.count(value)

  • 返回列表中值value的出现次数。
  • 时间复杂度:O(n),随着数据规模的增大,效率下降,所以尽量避免使用这个方法。
  1. lst = ['a', 3, 'b', 'a']
  2. print(lst.count('a'))
  3.  
  4. 运行结果如下:
    2

4、列表元素的修改

  • 列表是可变的有序的数据结构,所以可以根据其索引来修改列表中对应的元素。
  • 注意,索引不能超界,否则抛出异常IndexError。
  1. lst = ['a', 3, 'b', 'a']
  2. lst[3] = 'c'
  3. print(lst)
  4.  
  5. 运行结果如下:
    ['a', 3, 'b', 'c']

5、list.append(object)

  • 在列表的尾部追加元素。
  • 返回None,就地修改。
  • 时间复杂度:O(1),直接在列表尾部追加,所以对于效率没有什么影响。
  1. lst = ['a', 3, 'b', 'a']
  2. lst.append('d')
  3. print(lst)
  4.  
  5. 运行结果如下:
    ['a', 3, 'b', 'a', 'd']

6、list.insert(index, object)

  • 根据索引index,将元素插入到对应的位置。
  • 返回None,就地修改。
  • 时间复杂度:O(n),所以这种方法不推荐使用,推荐使用append这种方法。
  • 插入元素的时候索引可以超界,超过上界,头部追加,超过下界,尾部追加。
  1. lst = ['a', 3, 'b', 'a']
  2. lst.insert(2, 'd')
  3. print(lst)
  4.  
  5. 运行结果如下:
    ['a', 3, 'd', 'b', 'a']

7、list.extend(iteratable)

  • 将可迭代对象的元素追加进行来。
  • 返回None,就地修改。
  1. lst = ['a', 3, 'b', 'a']
  2. lst.extend('d')
  3. print(lst)
  4.  
  5. 运行结果如下:
    ['a', 3, 'b', 'a', 'd']

8、+

  • 将两个列表连接起来,返回一个新的列表,原列表不变。

9、*

  • 重复操作,将列表中的元素重复n次,返回一个新的列表。

10、list.remove(value)

  • 找到匹配的值value,移除该值。
  • 返回None,就地修改。
  • 时间复杂度:O(n),不建议使用这个方法。
  1. lst = [3, 4, 2, 7]
  2. lst.remove(4)
  3. print(lst)
  4.  
  5. 运行结果如下:
    [3, 2, 7]

11、list.pop([index])

  • 不指定索引index,则直接弹出列表尾部的值,指定索引,则弹出指定索引的值。
  • 时间复杂度:不指定索引,时间复杂度O(1),指定索引,时间复杂度O(n)。
  • 注意,索引不能超界,否则抛异常IndexError。
  1. lst = [3, 4, 2, 7]
  2. lst.pop()
  3. print(lst)
  4. lst.pop(1)
  5. print(lst)
  6.  
  7. 运行结果如下:

 [3, 4, 2]
 [3, 2]

12、list.clear()

  • 清除列表中的所有元素,返回一个空的列表。

13、list.reverse()

  • 将列表中的元素进行反转。
  • 返回None,就地修改。
  1. lst = [3, 4, 2, 7]
  2. lst.reverse()
  3. print(lst)
  4.  
  5. 运行结果如下:
    [7, 2, 4, 3]

14、list.sort(key=None, reverse=False)

  • 将列表中的元素进行排序,默认为升序。
  • 返回None,就地修改。
  • reverse改为True,降序排列。
  1. lst = [3, 4, 2, 7]
  2. lst.sort()
  3. print(lst)
  4.  
  5. 运行结果如下:
    [2, 3, 4, 7]

15、list.copy()

  • 浅拷贝,将列表中的元素进行拷贝,返回一个新的列表。
  • 注意,浅拷贝如果遇到引用类型的数据时,修改其中一个列表的引用类型另一个列表中的值也会改变。
  1. lst = [3, [3, 4], 7]
  2. lst2 = lst.copy()
  3. print(lst2)
  4. lst2[1][0] = 10
  5. print(lst)
  6. print(lst2)
  7.  
  8. 运行结果如下:

 [3, [3, 4], 7]
 [3, [10, 4], 7]
 [3, [10, 4], 7]

16、copy.deepcopy(list)

  • 深拷贝,将列表中的元素拷贝返回一个新的列表。
  • 深拷贝就没有引用类型数据修改变化的问题了。
  1. import copy
  2.  
  3. lst = [3, [3, 4], 7]
  4. lst2 = copy.deepcopy(lst)
  5. print(lst2)
  6. lst2[1][0] = 10
  7. print(lst)
  8. print(lst2)
  9.  
  10. 运行结果如下:

 [3, [3, 4], 7]
 [3, [3, 4], 7]
 [3, [10, 4], 7]

三、random模块

1、randint(a, b)

  • 返回a到b之间的整数
  1. import random
  2.  
  3. print(random.randint(1, 10))

2、choice(seq)

  • 从非空序列的元素中随机挑选出一个元素
  1. import random
  2.  
  3. print(random.choice([2, 5, 8]))

3、randrange([start, ] stop, [, step])

  • 从指定范围[start, stop],按照指定的步数step随机获取一个数,step缺省值为1.
  1. import random
  2.  
  3. print(random.randrange(1, 10, 2))

4、shuffle(list)

  • 就地打乱列表中的元素
  1. import random
  2.  
  3. lst = [1, 2, 3, 4, 5]
  4. random.shuffle(lst)
  5. print(lst)

5、sample(population, k)

  • 从样本空间population中随机取出k个不同的元素,返回一个新的列表。
  1. import random
  2.  
  3. lst = [1, 2, 3, 4, 5]
  4. lst2 = random.sample(lst, 2)
  5. print(lst2)

(python)数据结构------列表的更多相关文章

  1. python 数据结构-列表

    列表常用方法汇总: #定义列表li li=[12.23,456,88,9] a=[1,2,3] #添加元素到列表结尾 li.append(360) #追加列表元素extend(L) li.extend ...

  2. python数据结构-列表-基本操作

  3. python数据结构-列表-建立/索引/反转

  4. Python数据结构之一——list(列表)

    Python版本:3.6.2  操作系统:Windows   作者:SmallWZQ Python包含6种常见的内建序列.它们分别是列表.元祖.字符串.Unicode字符串.buffer(memory ...

  5. Python数据结构之列表、元组及字典

    一位大牛Niklaus Wirth曾有一本书,名为<Algorithms+Data Structures=Programs>,翻译过来也就是算法+数据结构=程序.而本文就是介绍一下Pyth ...

  6. Python数据结构:列表、元组和字典

    在Python中有三种内建的数据结构——列表list.元组tuple和字典dict 列表中的项目包括在方括号中,项目之间用逗号分割 元组和列表十分类似,只不过元组和字符串一样是不可变的 即你不能修改元 ...

  7. Python笔记——基本数据结构:列表、元组及字典

    转载请注明出处:http://blog.csdn.net/wklken/archive/2011/04/10/6312888.aspx Python基本数据结构:列表,元组及字典 一.列表 一组有序项 ...

  8. python数据结构之图的实现

    python数据结构之图的实现,官方有一篇文章介绍,http://www.python.org/doc/essays/graphs.html 下面简要的介绍下: 比如有这么一张图: A -> B ...

  9. Python数据结构与算法--List和Dictionaries

    Lists 当实现 list 的数据结构的时候Python 的设计者有很多的选择. 每一个选择都有可能影响着 list 操作执行的快慢. 当然他们也试图优化一些不常见的操作. 但是当权衡的时候,它们还 ...

随机推荐

  1. 在vue 中使用 less

    1.安装 npm install --save-dev less less-loader npm install --save-dev style-loader css-loader 先在index. ...

  2. Android内存优化之内存缓存

    前言: 上面两篇博客已经讲了图片的基本知识和图片的加载方法及优化,所有的这些优化都是为了避免应用出现OOM这个问题.一个好的应用程序不仅要健壮不能出错还要方便用户使用,对于用户来说你的应用不仅要美观还 ...

  3. 使用TPC-DS工具生成数据

    1.下载工具 两种渠道 a.官网(建议直接跳过-) 地址:http://www.tpc.org/tpc_documents_current_versions/current_specification ...

  4. 浅谈JavaScript 函数作用域当中的“提升”现象

    在JavaScript当中,定义变量通过var操作符+变量名.但是不加 var 操作符,直接赋值也是可以的. 例如 : message = "hello JavaScript ! " ...

  5. 使用ES6新数组方法(象C# Lambda表达式一样写查询语句)

    let people = [ {id: 1, name: "a", age: 12}, {id: 2, name: "b", age: 13}, {id: 3, ...

  6. linux 命令 — grep

    grep 用于文本搜索,能接受文件或者stdin作为输入,能输出各种格式 grep match_pattern filename 搜索文件中出现match_pattern的行,match_patter ...

  7. 数据库性能测试:sysbench用法详解

    1.简介和安装 sysbench是一个很不错的数据库性能测试工具. 官方站点:https://github.com/akopytov/sysbench/ rpm包下载:https://packagec ...

  8. 前端(一)之 HTML

    前端之 HTML 前言 python 基础.网络编程.并发编程与数据库要开始告一段落了,从现在开始进入前端的学习.前端的东西多且杂,需要好好地练习. 什么是前端 前端即网站前台部分,运行在 PC 端, ...

  9. 数据挖掘(二)——Knn算法的java实现

    1.K-近邻算法(Knn) 其原理为在一个样本空间中,有一些已知分类的样本,当出现一个未知分类的样本,则根据距离这个未知样本最近的k个样本来决定. 举例:爱情电影和动作电影,它们中都存在吻戏和动作,出 ...

  10. 一个smtp发送错误

    错误返回: Error: need EHLO and AUTH first ! 原因:服务器是smtp.exmail.qq.com,邮箱账号是企业新申请的邮箱账号,邮箱密码需要重新修改. 解决办法:修 ...