广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python内置数据结构——列表list
  • 213
分享到

Python内置数据结构——列表list

数据结构列表Python 2023-01-31 02:01:49 213人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

内置数据结构分类:数值型int , float , complex , bool序列对象字符串 str列表 listtuple(元组)键值对集合 set字典 dict数字型int ,float , complex , bool都是class

内置数据结构分类:

数值型

int , float , complex , bool

序列对象

字符串 str

列表 list

tuple(元组)

键值对

集合 set

字典 dict


数字型

  • int ,float , complex , bool都是class, 1,5.0 , 2+3j都是对象的实例

  • int : python3的int就是长整型,没有大小限制,受限于内存大小

  • float:有整数部分和小数部分组成,支持十进制和科学计数法表示,只有双精度型

  • complex:有实数和虚部组成,实部和虚部都是浮点数,3+4j

  • bool:int 的子类,仅有2个实例True和False 对应 1和0,可以和整数直接运算


列表 list()

       列表是可变的,连续的(sequence),可以进行索引的,线性数据结构,可迭代的数据结构

区分:

    list列表: 查找快...但是从修改(增/删)的时候,很麻烦很慢

    link链表: 查找慢...但是修改快,查找很慢

    queue(队列): 先进先出~

    stack(栈): 先进后出,后进先出(堆栈)

列表list定义:  初始化

    list() ->new empty list

    list(iterable) -> new list initialized from iterable's items

    list不能一开始就定义大小

lst = list()
lst = []
lst = [2,5,6,'ab']
lst = list(range(5))

索引 index: 也叫下标,从0️开始

  • 正索引: 从左至右,从0开始,为列表中每个单元进行编号

  • 负索引:从右至左,从-1开始

  • 正负索引不可超界,否则发生一场:Index Error

  • 列表通过索引访问:list[index],index就是索引,使用中包括访问

列表查询方法:

1.L.index(valve,[start,stop])

  • 通过元素值,从指定区间查找列表内的元素是否匹配

  • 匹配到第一就立刻返回索引

  • 匹配不到,抛出异常valveError

2.count(valve)

  • 返回列表中匹配到valve的次数

  • 时间复杂度:

  • index和count方法都是O(n)[遍历]

  • 随着列表数据规模的增大,效率下降

len():输出列表的长度

列表元素修改

索引访问修改 ,索引不要超界

list[index] = valve

列表增加,插入列表

返回None意味着没有新的列表产生,就地修改

1.L.append(object) -> None

  • 列表尾部追加元素,返回None

  • 实际复杂度是O(1)

2.L.insert(index,object) -> None

  • 在指定的索引 index处插入语元素

  • 时间复杂度是O(n)

  • 此处index可以超界:

  • 超越上界,尾部追加;

  • 超越下界,头部追加

3.L.extend(iterable) -> None

  • 将可迭代对象的元素追加进来,返回None

返回 list ,意味着产生了新的list

1. + -> list

  • 连接操作,将两个列表连接起来

  • 产生新的列表,原列表不变

  • 本质上调用的是__add___()方法

2. *  -> list

  • 重复操作,将本列表元素重复n次,返回新的列表

  • 列表 * 重复的坑:

x = [[1,2,3]] * 3
print(x)
x[0][1] = 20
print(x)

[[1, 2, 3], [1, 2, 3], [1, 2, 3]]
[[1, 20, 3], [1, 20, 3], [1, 20, 3]]

y = [1] * 5
y[0] = 6
y[1] = 7
print(y)

[6, 7, 1, 1, 1]

列表删除元素

1. L.remove(valve) -> None

  • 从左至右查找第一个匹配Valve的值,移除该元素,返回None

  • 就地修改

  • 效率:时间复杂度= O(n)

2. L.pop([index]) -> item

  • 不指定索引 index,就从列表尾部弹出一个元素

  • 指定索引 index,就从index处弹出一个元素,索引超界抛出IndexError错误

  • 效率:不指定索引 Index时 时间复杂度= O(1) ,指定索引(从头,或中间), 时间复杂度=O(n)

3. L.clear() -> None

  • 清除列表所有元素,剩下一个空列表

其它列表操作

1. L.reserve() -> None

  • 将列表元素反转,返回None

  • 就地修改

2. L.sort(key=None,reserve=Flase) -> None

  • 对列表元素进行排序,就地修改,默认升序

  • reserve为True,反转,降序

  • key= 一个函数,按照key的内容进行排序

  • lst.sort(key=functionname),exp: lst.sort(key = str) 按照字符串进行排序

3. in , not in

  • [3,4] in [1,2,[3,4]]

  • [5] not in [1,2,[3,4]]

  • for x in [1,2,[3,4]]

列表复制

L.copy() -> List

  • 返回一个新的列表

1.浅拷贝shadow copy:

        影子拷贝,也叫浅拷贝,遇到引用类型,只是复制了一个引用而已

lst0 = [1,[2,3,4],5]
lst5 = lst0.copy()
lst5[1][1] = 20
print(lst5)
print(lst0)

[1, [2, 20, 4], 5]
[1, [2, 20, 4], 5]

2.深拷贝deepcopy

        copy模块提供了deepcopy

import copy
lst0 = [1,[2,3,4],5]
lst5 = copy.deepcopy(lst0)
lst5[1][1] = 20
lst5 ! == lst0
print(lst5)
print(lst0)

[1, [2, 20, 4], 5]
[1, [2, 3, 4], 5]

随机数 random模块

1. random.randint(a,b)  -> item

  • 返回[a,b]之间的随机数

2. random.randrange([start],stop,[step])  -> item

  • 从指定范围内,按指定基数递增的集合中获取一个随机数, 基数缺省值为1. random.randrange(1,7,2)

3. random.choice()  -> item

  • 从非空序列的元素中随机抽取一个元素,exp: random.choice(range(10)) 从0到9中随机挑选一个整数.random.choice([1,3,5,7])

4. random.shuffle(list) -> none

  • 就地打乱列表元素

5. random.sample(population,k) -> list

  • 从样本空间或总体(序列或者集合类型) 中随机取出 k个不同(索引位置)的元素,返回一个新的列表. exp:

random.sample(['a','b','c','d'],2)
random.sample(['a','b'] ,2


元组

一个有序的元素组成的集合

使用小括号()表示

元组是不可变对象


元组的定义 初始化

定义:

    tuple() -> empty tuple

    tuple(iterable) -> tuple initialized from iterable's items

t = tuple()

t = ()

t = tuple(range(1,7,2)) 可迭代对象

t = (1,) # 一个元素元组的定义,注意要有个逗号

t = (1,) * 5

t = (1,2,3) * 6

元组元素的访问

  • 支持索引(下标)

  • 元组通过索引访问

        tuple[index]: t[1]

  • 正索引:从左至右,从0开始

  • 负索引:从右至左,从-1开始

  • 正负索引不可超界.否则引发一场Index Error

元组查询

1.t.index(valve,[start,stop])

  • 通过值value,从指定区间查找元组内的元素是否匹配

  • 匹配到第一就立刻返回索引

  • 匹配不到,抛出异常valveError

2.count(valve)

  • 返回元组中匹配到valve的次数

  • 时间复杂度:

  • index和count方法都是O(n)[遍历]

  • 随着列表数据规模的增大,效率下降

  • len():返回元素的个数

元组不可变,只读,所以没有增,删,改的方法

命名元组namedtuple

namedtuple(typename,field_names,verbose= False,rename=False)

  • 命名元组,返回一个元组的子类,并定义了字段

  • field_names可以是空白符或逗号分割的字段的字符串,可以是字段的列表

from collections import namedtuple
point = namedtuple("_point",["x", "y"]) # point为返回的类
p = point(11,22)

Exp:
fORM collections import namedtuple
Student = namedtuple("Student","name age")
tom = Student("tom",20)
jerry = Student("jerry,18")
tome.name

--结束END--

本文标题: Python内置数据结构——列表list

本文链接: https://www.lsjlt.com/news/185799.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python内置数据结构——列表list
    内置数据结构分类:数值型int , float , complex , bool序列对象字符串 str列表 listtuple(元组)键值对集合 set字典 dict数字型int ,float , complex , bool都是class...
    99+
    2023-01-31
    数据结构 列表 Python
  • python学习3-内置数据结构1-列表
    列表及常用操作    列表是一个序列,用于顺序的存储数据1、定义与初始化lst = list() #使用list函数定义空列表lst = []    #使用中括号定义列表lst = [1,2,3]    #使用中括号定义初始值列表lst =...
    99+
    2023-01-31
    数据结构 列表 python
  • Python数据结构列表
    目录1 序列2 列表2.1 列表函数2.2 列表排序2.3 解析列表正则小练习:匹配出以下字符串所有url, import re def find_url(sentence, ...
    99+
    2022-11-12
  • Python内置数据结构列表与元组示例详解
    目录1. 序列 2. 列表 2.1 列表的特性2.1.1 列表的连接操作符和重复操作符 2.1.3 列表的索引 2.1.4 列表的切片 2.1.5 列表的循环(for) 2.2 列表...
    99+
    2022-11-12
  • 举例讲解Python中的list列表数据结构用法
    循环和列表 不管怎样,程序会做一些重复的事情,下面我们就用for循环打印一个列表变量。做这个练习的时候你必须自己弄懂它们的含义和作用。 在使用for循环之前,我们需要一个东西保存循环的值,最好的方法是使用一...
    99+
    2022-06-04
    数据结构 列表 Python
  • Python内置数据结构列表与元组的详细介绍
    本篇内容介绍了“Python内置数据结构列表与元组的详细介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!目录 序列 列表1 列表的特性1....
    99+
    2023-06-20
  • python内置数据结构
    1、列表--是一个序列,用于顺序的存储数据列表的定义与初始化In [374]: lst = list() In [375]: lst Out[375]: [] In [376]: lst = [] In [377]: lst = [1...
    99+
    2023-01-31
    数据结构 python
  • Python数据结构与算法之列表(链表,linked list)简单实现
    Python 中的 list 并不是我们传统(计算机科学)意义上的列表,这也是其 append 操作会比 insert 操作效率高的原因。传统列表——通常也叫作链表(linked list)——通常是由一系...
    99+
    2022-06-04
    数据结构 算法 链表
  • Python内置数据结构——bytes,
    bytes,bytearray字符串与bytes字符串是字符组成的有序序列,字符可以使用编码来理解bytes是字节组成的有序的不可变序列bytesarray是字节组成的有序的可变序列编码与解码字符串按照不同的字符集编码encode返回字序列...
    99+
    2023-01-31
    数据结构 Python bytes
  • Python内置数据结构3
    解构In [8]: lst = [1,2] In [9]: lst Out[9]: [1, 2] In [10]: first,second = lst  #解构 In [11]: print(first,second) 1 2按照元...
    99+
    2023-01-31
    数据结构 Python
  • Python数据结构列表是怎样的
    Python数据结构列表是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。正则小练习:匹配出以下字符串所有url,import re d...
    99+
    2023-06-22
  • Python学习之day3数据结构之列表
                                                          数据结构之列表一、列表定义      列表是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目。列表中的项目应包括在...
    99+
    2023-01-31
    数据结构 列表 Python
  • Python标准数据类型-List(列表)
    ✅作者简介:CSDN内容合伙人、阿里云专家博主、51CTO专家博主、新星计划第三季python赛道Top1🏆 📃个人主页:hacker707的csdn博客 ...
    99+
    2023-09-10
    python list pycharm 原力计划
  • week02_python内置数据结构_
    > 数值型: int、float、complex、bool都是class,1,5.0,2+3j都是对象即实例;int:python3的int就是长整型,且没有大小限制,受限于内存区域的大小;float:额整数部分和小数部分组成。...
    99+
    2023-01-31
    数据结构 week02_python
  • python中有哪些内置数据结构
    这篇文章给大家介绍python中有哪些内置数据结构,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long(长整型)和float(浮...
    99+
    2023-06-14
  • Python中有什么内置数据结构
    本篇内容主要讲解“Python中有什么内置数据结构”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python中有什么内置数据结构”吧!Python可谓是如今最流行的编程语言,甚至孩子们也可以从它...
    99+
    2023-06-16
  • Python数据结构之列表与元组详解
    目录Python 列表(list):1.序列介绍:2.列表的概述:3.创建一个列表4.列表的索引5.列表的分片6.列表的分片赋值7.循环遍历列表8.查找元素与计数9.列表增加元素:1...
    99+
    2022-11-12
  • Python列表的数据结构是怎么样的
    这篇文章给大家分享的是有关Python列表的数据结构是怎么样的的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Python 列表的数据结构是怎么样的?列表实际上采用的就是数据结构中的顺序表,而且是一种采用分离式技术...
    99+
    2023-06-08
  • Python对list列表结构中的值进行去重的方法总结
    今天遇到一个问题,在同事随意的提示下,用了 itertools.groupby 这个函数。不过这个东西最终还是没用上。 问题就是对一个list中的新闻id进行去重,去重之后要保证顺序不变。 直观方法 最简单...
    99+
    2022-06-04
    结构 方法 列表
  • Python常用的内置序列结构(列表、元组、字典)学习笔记
    列表与元组 列表用大括号[]表示,元组用圆括号()表示。 列表可以修改,字符串与元组不可修改。 元组的分片还是元组,列表的分片还是列表。 1.列表方法: name=["zhang3","li4","wa...
    99+
    2022-06-04
    序列 字典 学习笔记
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作