python存储序列_python 序列

增---------------------------------------------------------------------------------------------------

#append()末尾追加元素,这个元素类型没有限制,和下边extend()做对比

>>> list3 = ['111','hello', 3333]>>> list3.append('2222') #无返回值,但改变了列表本身

>>>list3

['111', 'hello', 3333, '2222']>>> list3.append((555,['a','b'])) #append只接受一个参数

>>>list3

['111', 'hello', 3333, '2222', (555, ['a', 'b'])]#extend()该方法只能追加可迭代对象(序列),不能是数值类型的元素

>>> list4 = ["9", 9]>>> list4.extend([1,2]) #无返回值,但改变了列表本身

>>>list4

['9', 9, 1, 2]>>> list4.extend(((1,2),[3,4],{'a':1,'b':2})) #extend()只能接收一个参数

['9', 9, 1, 2, (1, 2), [3, 4], {'a': 1, 'b': 2}]>>> list4.extend("python") #这里要注意:他只把字符串当作是序列来处理,而不是数值,效果看打印

>>>list4

['9', 9, 1, 2, (1, 2), [3, 4], {'a': 1, 'b': 2}, 'p', 'y', 't', 'h', 'o', 'n']>>> list4.extend(1)

Traceback (most recent call last):

File"", line 1, in TypeError:'int' object is not iterable #提示object不是可迭代对象

#insert()指定对象插入列表的指定位置,注意insert是插在前面,list5.insert(-1,'a')

>>> list5 = ['aaa', 'bbb', 'ccc']>>> list5.insert(0,1) #无返回值,但改变了列表本身

>>>list5

[1, 'aaa', 'bbb', 'ccc']>>> list6 =[]>>> list6.insert(0, 1)>>>list6

[1]>>> list5 =[]>>> list5.insert(-1, 'a')>>> list5.insert(-1, 'b')>>>list5

['b', 'a'] #注意这里为什么b会在a的前面,就是因为insert是占的a的位置,把a挤到后面去了

>>>删---------------------------------------------------------------------------------------------------

#remove()移除列表中某个值的第一个匹配项。注意和pop对比

>>> list7 = ['hello', 'world', 'hello', 'python']>>> list7.remove("hello") #他移除了靠前的"hello",无返回值,但改变了列表本身

>>>list7

['world', 'hello', 'python']>>> list7.remove("xxxx") #要移除的值必须在列表中,否则报错

Traceback (most recent call last):

File"", line 1, in ValueError: list.remove(x): xnot inlist#pop()根据索引移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。

>>> list6 = ['a', 'b', 'c', 'd']>>> list6.pop() #有返回值,返回被删除的元素值

'd'

>>>list6.pop(0)'a'

>>> list6.pop(5) #注意索引必须在列表中存在

Traceback (most recent call last):

File"", line 1, in IndexError: pop index out of range#索引不在列表之内

>>> list6.pop((0,2)) #注意他只接收一位整数

Traceback (most recent call last):

File"", line 1, in TypeError:'tuple' object cannot be interpreted as an integer #object不能解释为整数

#del 可以删除元素,也可以删除整个列表

>>>list1

[9, 1, 2, 'a', 3]>>> del list1[1]>>>list1

[9, 2, 'a', 3]>>> del list1

>>> list1 #注意del删除整个列表是包括定义也一起删除了,而clear只是清空了容器

Traceback (most recent call last): #里面的内容,定义没删除

File "", line 1, in NameError: name'list1' is notdefined#clear()清空列表

>>>list1 = [1, 2, 'a']>>>list1.clear()>>>list1

[]

改---------------------------------------------------------------------------------------------------

#[] 通过索引来改值

>>> a = [1,2,3]>>> a[0]='a'

>>>a

['a', 2, 3]#[1:4:2] 根据切片来改

>>> a = [1,2,3]>>> a[1:3] = [66,99,77]

[1, 66, 99, 77] #注意当位数大于切片的长度时,多余的元素也会插入到列表中

>>>list1

[1, 2, 3, 4, 5, 6, 7, 8, 9]>>> list1[slice(1,6,2)] = ['a', 'b', 'c']>>>list1

[1, 'a', 3, 'b', 5, 'c', 7, 8, 9]>>> list1[slice(1,6,2)] = ['a', 'b', 'c', 'd', 'f'] #这个方法会索引插入的区别在于:这个方法不能多插或少插

Traceback (most recent call last):

File"", line 1, in ValueError: attempt to assign sequence of size5 to extended slice of size 3查---------------------------------------------------------------------------------------------------

#[] 根据索引取值

>>> list2 = ['23', '34', '11', '77', 'aa', 'bc']>>> list2[1] #有返回值,返回索引对应的值,这个支持多维列表

'34'

>>> list2[11]

Traceback (most recent call last):

File"", line 1, in IndexError: list index out of range#[1:5:2] 根据切片来查

[1, 66, 99, 77]>>> list1 = [1,2,3,4,5,6,7,8,9]>>> list1[1:6:2]

[2, 4, 6]>>> list1[slice(1,6,2)]

[2, 4, 6]>>> list1[slice(5)]

[1, 2, 3, 4, 5]>>> list1[slice(1,3)]

[2, 3]#index()根据值取索引,返回第一个匹配到的索引,当没匹配到会报错

>>> list8 = ['a', 'a','b', 'c', 'd']>>> list8.index('a') #有返回值,返回匹配到的第一个索引,其查询作用,未改变列表本身

0>>> list9 = ['a', 'a','b', 'c', 'd',['ee', 'ff']] #注意当列表是多个维度时,里层的值是找不到的

>>> list9.index('ee')

Traceback (most recent call last):

File"", line 1, in ValueError:'ee' is not inlist#count()统计某个元素在列表中出现的次数

>>> list10 = ['12','23', '34', '34',34]>>> list10.count('34') #有返回值,返回次数,起查询作用,未改变列表本身

2

>>> list10.count('0') #不存在的也是可以查的,返回0

0

其他--------------------------------------------------------------------------------------------------

#copy() 复制列表,这个只针对一维列表

>>>list2 = [3, 4,'python']>>> a = list2.copy() #有返回值

>>>a

[3, 4,'python']#copy.deepcopy() 深浅复制,当列表是多个维度的时候,必须使用这个方法进行复制

>>> a = [1,2,['a','b'],3]>>>importcopy>>>copy.deepcopy(a) #有返回结果

[1,2,['a','b'],3]#reverse()用于反向列表中元素,注意不是倒序的意思

>>> list11 = ['Google', 'Runoob', 'Taobao', 'Baidu']>>> list11.reverse() #没有返回值

>>>list11

['Baidu', 'Taobao', 'Runoob', 'Google']#sort()用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。

#注意;列表的中元素必须是同一种数值类型,否则使用该方法会报错

>>> list12 = ['23', '34', '11', '77', 'aa', 'bc']>>> list12.sort() #没有返回值,默认按升序排列

>>>list12

['11', '23', '34', '77', 'aa', 'bc']>>> list12.sort(reverse=True) #没有返回值,设置reverse=True按降序排列

>>>list12

['bc', 'aa', '77', '34', '23', '11']>>> def takeSecond(elem): #获取列表的第二个元素

... return elem[1]>>> random = [(2, 2), (3, 4), (4, 1), (1, 3)]>>> random.sort(key=takeSecond) #key 指定可迭代对象中的一个元素来进行排序

>>>random

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值