美文网首页
核心数据结构之列表与元组

核心数据结构之列表与元组

作者: 互联网中的一个咸鱼 | 来源:发表于2019-08-21 21:26 被阅读0次

Python中核心数据类型结构分类

  • 序列类型:字符串、列表、元组
  • 泛映射类型:字典
  • 集合:set()

列表

1.列表的特性:

  • 列表内的元素是可变的
  • 列表的元素可以是Python的任何数据类型的数据和对象
  • 列表的元素可以出现多次

2.创建列表

li=[]    #空列表
li=['a','b']

list(li)               #list()可以将其他类型转化为列表类型
string.split()    #split()  将字符串类型转换为列表类型

列表的基本操作

3.1取值
li=['a','b',['c','d']]
li[0]   #结果'a'
li[2][1]  #结果'd'   因为是嵌套列表,所以这样输出
3.2切片
li=['a','b',['c','d']]
li[0:2]   #输出['a','b']   切片之后的数据的类型还是列表类型
3.3 方法
len(li)           #求出列表长度   适用于所有的序列类型
len(li)         #3

'a'  in               #判断元素是否在列表内,注意a是字符串,要加上引号,否则会当作变量查找
print( 'a' in li )   #True

li.append()   #向列表最后位置添加元素
li.appedn('a')  #li=['a','b',['c','d'],'a']

li.insert(index,str)    #向列表指定位置添加元素
li.insert(2,'a')        #li=['a','b','a',['c','d']]

extend()            #将另一个序列类型原封不动的添加到列表内
l1=[1,2,3]
li.extend(l1)    #li=['a','b',['c','d'],1,2,3]

remove()          #根据指定元素移除列表内的元素,如果发现多个,只会移除第一个
li.remove('a')  #li=['b',['c','d']]

pop()                 #默认删除列表最后一个位置,并且有返回值,与remove的不同之处
li.pop()         #li=['a','b']

pop(index)    #移除索引对应的元素
li.pop(1)    #li=['a',['c','d']]

''.join(list)     #把列表中的元素拼接起来,返回的是字符串类型
''.join(li)     #这样会报错,因为join()拼接的只能是字符号,并且嵌套的也不不可以拼接,可以这样操作
li.pop()
''.join(li)      #返回的是'ab'
'-'.join(li)     #已指定字符串进行拼接,输出的是'a-b'

li.index()    #返回指定元素的索引位置
li.index('a')   #返回0

li.count()   #统计值出现的次数
li.count('a')  #1

li.sort()   #对列表进行排序,只支持全字符或者全数字,并且会改变值的本身
li=[1,3,2]  
li.sort()         #li=[1,2,3]
li.sort(reverse=True)    #对排序进行反转

sorted(li)    #这是一个Python的内置函数,所以要这样使用
参数可以是任意数据类型的数据,但是类型必须一样,原列表不会发生改变

引用赋值

1.问题

a=['1','2','3','4','5']
b=a
print(a is b)       #两个列表指向同一个对象,id也完全一样

修改b[0]=3
会导致a[0]也会等于3      
这样在生产中,会出现问题

2.初步解决

使用以下几种方法都可以将一个列表赋值给一个新的对象
一. 列表的内置函数list.copy()
二.序列类型函数list(li)
三列表切片.
这三种方法都是开辟一个新的内存空间给新的列表,各自之间的id值都会不一样

深浅拷贝

li1=['name',['phone',1000]]
li2=list(li1)
li3=li1.copy()

这三个列表的id值各不相同
但是id(li1[1]),id(li2[1]),li3[li3[1]]的三个id都一样,改变任意一个的值,三个都会改变,指向同一个内存

元组

1 元组特性
  • 元组和列表一样,也是序列类型
  • 唯一不同的是,元组是相对不可变的
  • 相对不可变,可变的是元组内元素的内容,不可变的是元组内元素的内存空间
2创建元组
tu=()    #创建空元组
tu=(3)   #这样创建的并不是元组,只是一个int类型数字
tu=(3,)  #这样的话才是元组

创建非空元素的元组使用逗号,而不是括号
tuple()     #将其他序列类型的数据转换为元组
3 使用元组的理由

给我一个理由

  • 占用内存空间小
  • 元组内的值不会被意外的修改
  • 可作为字典的键
  • 函数的参数是以元组形式传递的
  • 命名元组有时候可以代替类的对象(面向对象的时候用到)

相关文章

  • Python基础-元组,字典

    Python基础-元组(tuple),字典 元组: 数据结构与列表类似,其中元素可以有不同的类型,但是元组中的元素...

  • 笔记-Python-内置对象-元组

    元组数据结构与列表类似,元素可以有不同的类型,并且元组中的索引和切片都相同,和列表的区别在于,元组中的元素是不可变...

  • 窝的Python学习之路002 元组

    元组 与 列表 非常相似,但元组不能 插入 、删除 元素。 创建和访问一个元组 元组的核心是逗号,,不是括号 更新...

  • 六、元组的操作

    元组也是python中常见的数据结构,与列表类似,不同的是元组中的元素不可修改。 创建一个元组 访问元组的元素 删...

  • Python6--数据结构列表

    1.数据结构 Python 3 中非常常用的四种数据结构:列表、元组、集合与字典 2.列表 list(列表)是一种...

  • 第3章:内建数据结构、函数及文件

    python的常用数据结构:元组、列表、字典和集合 元组(tuple):固定长度、不可变的python序列 列表:...

  • 2021-12-1 Python-8

    内建数据结构 Python 常用的数据结构主要有元组、列表、字典和集合。 元组 元组长度固定,是不可变 Pytho...

  • 核心数据结构之列表与元组

    Python中核心数据类型结构分类 序列类型:字符串、列表、元组 泛映射类型:字典 集合:set() 列表 1.列...

  • Python_by_4plus_Week0(3)

    五 Data Structure (数据结构) python的四种数据结构,分别是:列表、字典、元组、集合。 列表...

  • 关于python tuple

    tuple(元组)作为python中比较标志的数据结构,与list(列表)类似(这里不详细讲述列表),不同之处在于...

网友评论

      本文标题:核心数据结构之列表与元组

      本文链接:https://www.haomeiwen.com/subject/hezisctx.html