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

2019-08-21  本文已影响0人  互联网中的一个咸鱼

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

列表

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 使用元组的理由

给我一个理由

上一篇 下一篇

猜你喜欢

热点阅读