掌握python元组容器_Python学习笔记(二)Python容器:列表,元组

关于列表:

首先明确两点:列表是可变的,列表是可重复的。

使用[ ] 或list()创建列表:

列表可以包括零个或多个元素组成,元素之间用逗号隔开,整个列表被方括号所包裹:

empty_list=[ ]

也可以使用list()函数来创建一个空列表:empty_list=list()

可以使用list()函数将其他数据类型转换为列表:

将字符串转换为列表: list('cat') --> ['c', 'a', 't']

将元组转换为列表:atuple('cat','dog')    list(atuple)-->['cat', 'dog']

使用[offset]获取元素:

和字符串一样,列表可以通过偏移量提取值:list[ offset ]

从左至右偏移量是从0开始,从右至左偏移量是从 -1开始。

包含列表的列表:

列表可以包含各种类型的元素,包括其他列表

list=['exp1',['exp2','exp3],'exp4']

可以通过双重索引获取内部列表的元素:list[1][1]

使用[offset]修改元素

list[num]='newstring'

指定范围并使用切片提取元素

marxes=['Groucho','Chico','Harpo']

使用切片获取一个子列表:marxes[0:2] -->['Groucho', 'Chico']

指定步长提取元素:marxes[::2]-->['Groucho', 'Harpo']

从尾部开始提取,步长仍然为2:marxes[::-2]-->['Harpo', 'Groucho']

使用切片实现列表逆序:marxes[::-1]-->['Harpo', 'Chico', 'Groucho']

使用append()添加元素至尾部

列表是可变的,把元素加到尾部:marxes.append("Droc")-->['Groucho', 'Chico', 'Harpo', 'Droc']

使用extend()或+=合并列表

使用extend()可以将一个列表合并到另一个列表中。

将others列表:others=['Guum','Karl']合并到marxes列表中:

marxes.extend(others)-->['Groucho', 'Chico', 'Harpo', 'Droc', 'Guum', 'Karl']

使用 += 也可以达到同样的效果

使用insert()在指定位置插入元素

insert()函数可以将元素插入到列表的任意位置,指定偏移量0可以插入到头部,如果偏移量超过尾部,则会插入到最后。

marxes.insert(3,"Hurry")-->['Groucho', 'Chico', 'Harpo', 'Hurry', 'Droc', 'Guum', 'Karl']

使用del删除指定位置的元素

可以通过del list[ num ]删除指定位置的元素,元素被删除后它后面的元素会自动的往前移动。

删除marxes偏移量为2的元素:['Groucho', 'Chico', 'Harpo', 'Hurry', 'Droc', 'Guum', 'Karl']

del marxes[2]-->['Groucho', 'Chico', 'Hurry', 'Droc', 'Guum', 'Karl']

del就像是赋值(=)的逆过程:它将一个python对象与它的名字进行分离。如果这个对象无其他引用,则其占用空间也将被删除。

如果不确定或者不关心元素的位置,可以通过remove()根据指定的值删除元素。

删除Chico:marxes.remove("Chico")-->['Groucho', 'Hurry', 'Droc', 'Guum', 'Karl']

经验证,使用remove()并不会把全部的指定值删除,而是按照顺序逐个删除。

使用pop()获取并删除指定位置的元素

pop()是先获取对应位置的元素,然后将其删除。如果为pop()指定了偏移量,它会返回偏移量对应位置的元素;如果没有指定,默认使用-1。也就是说pop()或pop(-1)都将删除最后的元素。

使用pop()删除最后的元素:marxes.pop()-->['Groucho', 'Hurry', 'Droc', 'Guum']

使用index查询具有特定值的元素的位置

查询Harry的位置:marxes.index("Hurry")-->1

使用in判断值是否存在列表中

判断Hurry是否存在列表中:"Hurry" in marxes-->True

使用count()记录特定值出现的此数

使用count()可以记录某一特定值在列表中出现的次数:

查询Hurry出现的次数:marxes.count("Hurry")-->1

使用join()转换为字符换

join()函数是split()函数的逆过程,join()函数的参数是字符串或者其他任何可迭代的包含字符串的序列,它的输出是一个字符串。

使用 * 将marxes拼接成一个字符串:'*'.join(marxes)-->'Groucho*Hurry*Droc*Guum'

使用sort()重新排列元素

python提供了两个函数进行列表元素的排序:

列表方法sort()会对原列表进行排序,改变原列表的内容

通用函数sorted()则会返回好排序的副本,原列表内容不变

如果列表中都是数字,则默认按照升序进行排序。如果元素都是字符串,则会按照字母顺序排列。

当列表中的元素都是同一种类型的时候,sort()会正常工作,有时候多种类型(例如整型和浮点型)只要它们之间能够相互转换也可正常工作。

默认的排序是升序的,通过添加参数reverse=True可以改变为降序排列

栗子:

```

numbers=[1,2,37,4.0]  numbers.sort(reverse=True)-->[37, 4.0, 2, 1]

In [60]: max = ['djs', 'fadsjnk', 'djs', 'djs']

In [61]: min = sorted(max)

In [62]: min

Out[62]: ['djs', 'djs', 'djs', 'fadsjnk']

In [63]: max

Out[63]: ['djs', 'fadsjnk', 'djs', 'djs']

```

使用len()获取长度

len()可以返回列表的长度:len(marxes)-->4

使用 = 赋值,使用copy()复制

赋值相当于对象多了个引用

如果将一个列表赋值给多个变量,改变其中任何一处会造成其他变量对应的值也会被修改。

使用下面的函数可以将一个列表的值复制到另一只新的列表中:

列表copy()函数

list()转换函数

列表分片 [ : ]

首先我们新建一个列表:a=[1,2,3,4],然后利用copy()函数创建b,利用lis()函数创建c,并使用列表分片创建d:

a=[1,2,3,4]  b=a.copy()  c=list(a)  d=a[:]

b,c,d都是a的复制:它们是自身带有值的新对象,与a所指的对象没有任何关系,改变a也不会影响b,c,d的值。

有关元组:

元组也是有任意类型的元素组成的序列。与列表不同的是,元组是不可变的。

使用()创建元组:

empty_tuple=()

创建包含一个或多个元素的元组的时候,每一个元素后面都需要跟着一个逗号,即使只包含一个元素也不能省略:  one_marex='Grupo',  如果创建的元组的元素个数大于1,则最后一个元组后面的逗号可以省略。

注意:定义元组靠的是每个元素后面的逗号,并不是括号

元组解包:可以将元组依次赋值给多个变量

栗子:marx_tuple=('Grui','Direhu','Hhed')  a,b,c=marx_tuple    a-->'Grui'  b-->'Direhu'  c-->'Hhed'

可以借助元组在一条语句中对多个变量的值进行交换,而不需要借助临时变量:

栗子:password='swordfish'    icecream='tfundj'      password,icecream=icecream,password

tuple()函数可以将其他类型的数据来创建元组:

栗子: marxes=['Groucho', 'Hurry', 'Droc', 'Guum']  tuple(marxes)  -->('Groucho', 'Hurry', 'Droc', 'Guum')

注:本文内容来自《Python语言及其应用》欢迎购买原书阅读

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值