专栏首页keinYePython 基础语法四-list 与 tuple

Python 基础语法四-list 与 tuple

list

list(列表)是有序、可变的数据集合,可以随时添加、删除和修改元素,同时也是 python 内置的一种数据类型。

在 python 中使用一对方括号[]来定义一个 list。list 中的元素可以是任意的数据类型,甚至元素可以是一个 list。

list 可以看做是 C 或 java 中的数组,list 和数组最大的不同是 list 中的元素可以是不同的数据类型,而数组在定义后要求内部元素的数据类型必须与定义时的数据类型相同。

下面是一个 list 的定义

>>> a = []
>>> type(a)
<class 'list'>
>>> print(a)
[]
>>> b = [1, 'str', 3.14, a]
>>> print(b)
[1, 'str', 3.14, []]
>>> bool(a)
False
>>> bool(b)
True

list 基本操作

  • len() len() 用来计算 list 的长度,在交互模式下使用示例 >>> a = [] >>> list(a) 0 >>> b = [1, 'str', 3.14, a] >>> list(b) 4
  • + + 用来连接两个 list,在交互模式下使用示例 >>> a = ['python', 'keinYe'] >>> b = [1, 2, 3, 4] >>> a + b ['python', 'keinYe', 1, 2, 3, 4]
  • * * 用来对一个 list 进行多次重复,在交互模式下使用示例 >>> a = ['python', 'keinYe'] >>> a * 2 ['python', 'keinYe', 'python', 'keinYe']
  • in in 用来判断元素是否包含在 list 中,在交互模式下使用示例 >>> a = ['python', 'keinYe'] >>> 'python' in a True >>> 'mac' in a False
  • max 和 min max 和 min 用来获取 list 中的最大值和最小值,在交互模式下使用示例 >>> a = [1, 3, 2, 6, 4, 9] >>> max(a) 9 >>> min(a) 1
  • 增加和删除元素 append 和 insert 向 list 中增加元素. append 用来向 list 末尾增加新的元素,insert 可以在 list 的指定位置增加新的元素。 >>> a = [1, 2, 3] >>> a.append(4) >>> a [1, 2, 3, 4] >>> a.insert(1, 5) >>> a [1, 5, 2, 3, 4] pop 和 remove 从 list 中删除元素 remove 用来删除指定的元素,pop 用来删除末尾或指定位置的元素,同时返回被删除的元素。 >>> a = [1, 2, 3, 4, 5, 6, 7] >>> a.remove(1) >>> a [2, 3, 4, 5, 6, 7] >>> a.remove(8) Traceback (most recent call last): File "<stdin>", line 1, in <module> ValueError: list.remove(x): x not in list >>> a.pop() 7 >>> a [2, 3, 4, 5, 6] >>> a.pop(1) 3 >>> a [2, 4, 5, 6] 使用 remove 来删除 list 中的元素是,若 list 中不存在该元素,则会报错,故在使用 remove 前要先判断元素存在于 list 中。

list 索引

下标索引(类似C中数组索引),反向索引下标为负值。在 list 中索引是以元素为单位进行的

>>> a = [1, 'python', 3.14]
>>> a[0]
1
>>> a[3]
raceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> a[len(a)-1]
3.14
>>> a[-1]
3.14
>>> a[-2]
'python'
>>> a[-3]
1

list 的索引范围为 0 到 len(list) - 1 或者 -1 至 -len(list),当索引超出范围时,python 会报 IndexError 错误。

使用下标索引也可以替换 list 中的元素

>>> a = [1, 'python', 3.14]
>>> a[0] = 5
>>> a
[5, 'python', 3.14]
>>> a[1] = 10
>>> a
[5, 10, 3.14]

从以上示例可以看出使用 list 下标索引不仅可以更改 list 的元素值,还可以使用不同的数据类型来替换 list 中的元素。

对象有类型,变量无类型。list 中元素的数据类型是动态可变的。

list 排序

可以使用 sort 函数来对 list 进行排序。

sort(*, key=None, reverse=False) This method sorts the list in place, using only < comparisons between items. Exceptions are not suppressed - if any comparison operations fail, the entire sort operation will fail (and the list will likely be left in a partially modified state).

>>> a = [2, 5, 9, 4, 1, 3, 8, 6]
>>> a.sort()
>>> a
[1, 2, 3, 4, 5, 6, 8, 9]

sort 函数默认对 list 进行升序排列, list.sort() 是对列表进行原地修改,没有返回值。

由于 sort 函数默认是对 list 机型升序排列,有时我们需要对 list 进行降序排列,这时就用到了 sort 函数的 reverse 参数

>>> a = [2, 5, 9, 4, 1, 3, 8, 6]
>>> a.sort(reverse=True)
>>> a
[9, 8, 6, 5, 4, 3, 2, 1]

tuple

tuple (元组)也是一种有序列表,和 list 不同的是 tuple 一旦初始化就不能修改

元组是用圆括号括起来的,其中的元素之间用逗号隔开。

>>> tuple = (1, 'python', [1, 2, 3])
>>> type(tuple)
<class 'tuple'>
>>> tuple
(1, 'python', [1, 2, 3])

元组初始化后不能修改,误修改时 python 会报TypeError错误。

>>> tuple = (1, 'python', [1, 2, 3])
>>> tuple[0] = 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

创建空的元组

>>> tuple = ()
>>> tuple
()

创建仅有一个元素的元组

>>> tuple = (1,)
>>> tuple
(1,)

本文分享自微信公众号 - keinYe(keinYe_zh),作者:keinYe

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-11-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python 切片与迭代

    切片是 python 中截取列表、元组或字符串中部分元素的快捷方法,使用 [] 来实现。

    keinYe
  • Python 函数

    函数(functions)是指可重复使用的代码片段。可以给这个代码片段起一个名字,通过这个名字可以在程序的任意位置使用该代码片段的功能。 函数在维基百科上的解释...

    keinYe
  • Python 类和实例

    类是对同一种事物的抽象(即一种事物所具有的相同部分),在 python 中使用关键字 class 来定义一个类,下面是一个最简单的类的定义

    keinYe
  • 算法02 七大排序之:直接选择排序和堆排序

    上一篇总结了交换排序的冒泡排序和快速排序。这一篇要总结的是选择排序,选择排序分为直接选择排序和堆排序,主要从以下几点进行总结。 1、直接选择排序及算法实现 2、...

    nnngu
  • 第十二节、Python创建list《Python学习》

    Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。

    小白程序猿
  • Python语言中list及tuple的使用示例

    Python语言中的list Python有一种内置数据类型被称为列表:list。 1.list基本定义 list是一种有序的集合,可以随时添加和删除其中的元...

    小小科
  • linux通用链表

    链表的主要意义就是将分散地址的数据域通过指针排列成有序的队列。因此数据域是链表不可或缺的一部分,但是在实际使用中需要不同类型的数据域,因此也就限制了链表的通用。...

    开源519
  • 经典排序算法和python详解(二):冒泡排序、双向冒泡排序、插入排序和希尔排序

    一、冒泡排序(Bubble Sort)二、冒泡排序法改进三、双向冒泡排序法四、插入排序五、希尔排序(插入排序改进)

    Minerva
  • Python-列表+-01-两个列表各元素合并

    系统:Windows 7 语言版本:Anaconda3-4.3.0.1-Windows-x86_64 编辑器:pycharm-community-2016.3....

    zishendianxia
  • Python基础(list类)

    5、pop([i]) #删除并返回位置为 i 的元素,若省略参数,则表示删除最后一个元素 栈:LIFO(后进先出)

    py3study

扫码关注云+社区

领取腾讯云代金券