列表和元组

系统管理员 2021-05-03 14:53 567阅读 0赞

1.列表

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

比如,列出班里所有同学的名字,就可以用一个list表示:

classmates =[‘Michael’, ‘Bob’, ‘Tracy’]

classmates

[‘Michael’,’Bob’, ‘Tracy’]

classmates[0]

‘Michael’

classmates[-1]

‘Tracy’

列表常用函数

1、成员关系 in,not in

对象 [not] in序列

2、连接操作符(+)

sequence1+sequence2

3、重复操作符(*)

sequence*int 序列重复int次

int必须是一个整数,而且不能使长整数

4.切片操作符

seq[ind]获得下标为ind的元素

seq[ind1:ind2]获得下标从ind1到ind2间的元素集合

5、使用步长来进行扩展切片[n:m :l]

s=’abcded’

s[::-1]类似翻转

s[::2]隔一个取一个

6.列表求长:len(L)

7.列表中的最大值最小值: max(L)和min(L)

max()和min()函数在字符串操作里面用处不大,因为它们能对字符串做的只能是找出

串中”最大”和”最小”的字符(按词典序),而对列表和元组来说,它们被定义了更多的用处.比如

对只包含数字和字符串对象的列表,max()和min()函数就非常有用,重申一遍,混合对象的结构

越复杂返回的结构准确性就越差

8、将字符串转化成列表:

name=list(‘hello’)

name

[‘h’,’e’, ‘l’, ‘l’, ‘o’]

9、改变列表:元素赋值

L

[‘1’,’a’]

L[0]=2

L

[2, ‘a’]

10、分片赋值(第一个参数是开始分片的起始位置,第二个参数是结束分片的下一个位置)

1)修改序列

name = list(‘Perl’)

name = list(‘Perl’)

name[1:] = list(‘ython’)

name

[‘P’,’y’, ‘t’, ‘h’, ‘o’, ‘n’]

2)插入序列

num=[1,5]

num[1:1]=[2,3,4]

num

[1, 2,3, 4, 5]

3)删除序列

num=[1, 2, 3, 4, 5]

num[1:4]=[2]

num

[1, 2,5]

11、添加元素 append 和 extend

1)添加一个元素 append

L.append(‘NI’)

L

[2, ‘a’,’NI’]

2)扩展extend在结尾添加多个元素

在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

函数中填写一个列表

a = [1, 2, 3]

a.extend([4,5,6])

a

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

或者填一个列表对象

a = [1, 2, 3]

b = [4, 5, 6]

a.extend(b)

a

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

12、删除 pop,del,remove

1)pop根据位置删除[填写序列]

移除列表中的一个元素(默认最后一个元素),并且返回该元素的值

pop(元素位置),返回删除的元素

L.pop(1)

‘a’

2)、删除 del语句实现

del列表[元素位置]

L=[2, ‘NI’]

del L[1]

L

[2]

3)、移除 [填写对象]

remove(元素)

L.remove(‘NI’)

L

13、插入

L.insert(位置,’元素’)

注意,这个会改变原来元素的位置

L

[2]

L.insert(0,’test’)

L

[‘test’,2]

14、排序

1)升序

L.sort()

2)降序

反向列表中元素

L.reverse()

3)关键字排序:key

长度(len)排序:按长度排序

x = [‘bb’, ‘eeeee’, ‘a’,’dddd’, ‘ccc’]

x.sort(key = len)

x

[‘a’,’bb’, ‘ccc’, ‘dddd’, ‘eeeee’]

15.索引 index

从列表中找出某个值第一个匹配项的索引位置

[‘a’,’c’, ‘d’, ‘c’]

L.index(‘c’)

1

16、计数

统计某个元素在列表中出现的次数

L

[‘a’,’c’, ‘d’, ‘c’]

L.count(‘c’)

2

17、filter:过滤序列

filter(lambda x:x%2==0,[1,2,3,4,5,6])

[2, 4,6]

18、zip:并行遍历

name=[‘jim’,’tom’,’lili’]

age=[20,30,40]

tel=[‘133’,’156’,’189’]

zip(name,age,tel)

[(‘jim’,20, ‘133’), (‘tom’, 30, ‘156’),(‘lili’, 40, ‘189’)]

注意,如果序列长度不同时,会是下面这样的结果:

name=[‘jim’,’tom’,’lili’]

age=[20,30,40]

tel=[‘133’,’170’]

zip(name,age,tel)

[(‘jim’,20, ‘133’), (‘tom’, 30,’170’)] 即取最短的列表长度

19、map:并行遍历,可接受一个function类型的参数

a=[1,3,5]

b=[2,4,6]

map(None,a,b)

[(1, 2),(3, 4), (5, 6)]

map(lambda x,y:x*y,a,b) 实现了两个列表相乘

[2, 12,30]

如果序列长度不同时,会补上一个None

20、reduce:每次取两项归并

l=range(1,101)

l

[1, 2,3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,25, 26, 27, 28, 29, 30, 31, 32, 33,34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,45, 46, 47, 48, 49, 50, 51, 52, 53,54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,65, 66, 67, 68, 69, 70, 71, 72, 73,74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,85, 86, 87, 88, 89, 90, 91, 92, 93,94, 95, 96, 97, 98, 99, 100]

reduce(lambda x,y:x+y,l)

5050

2.元组

Python中的另一种有序列表叫元组:tuple。tuple和list非常类似,但是tuple一旦初始化就不能修改,比如同样是列出同学的名字:

classmates = (‘Michael’, ‘Bob’, ‘Tracy’)

现在,classmates这个tuple不能变了,它也没有append(),insert()这样的方法。其他获取元素的方法和list是一样的,可以正常地使用classmates[0],classmates[-1],但不能赋值成另外的元素。

不可变的tuple有什么意义?因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。

tuple的陷阱:当你定义一个tuple时,在定义的时候,tuple的元素就必须被确定下来,比如:

t = (1, 2)

t

(1, 2)

如果要定义一个空的tuple,可以写成():

t = ()

t

()

只有1个元素的tuple定义时必须加一个逗号,,来消除歧义:

t = (1,)

t

(1,)

Python在显示只有1个元素的tuple时,也会加一个逗号,,以免你误解成数学计算意义上的括号。

元组的对象和序列类型操作符还有内建函数跟列表的完全一样.你仍然可以对元组进行切

片操作,合并操作,以及多次拷贝一个元组,还可以检查一个对象是否属于一个元组,进行元组之间的比较等

发表评论

表情:
评论列表 (有 0 条评论,567人围观)

还没有评论,来说两句吧...

相关阅读

    相关 列表

    1.列表和元组的基础 列表和元组都是一个可以放置任意数据类型的有序合集。(在绝大多数编程语言中,集合的数据类型必须一致。不过,对于python的列表和元组来说,并无此要求)

    相关 列表

    1.列表 Python内置的一种数据类型是列表:list。list是一种有序的集合,可以随时添加和删除其中的元素。 比如,列出班里所有同学的名字,就可以用一个list表...