博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Python基础5】列表和元组
阅读量:4145 次
发布时间:2019-05-25

本文共 3520 字,大约阅读时间需要 11 分钟。

文章目录

序列:每个元素都有编号(即位置或索引),第一个位置的索引为0,也可以由末尾反向取索引,从-1开始。
列表、元组和字符串都是序列。
散列:元素无编号(无序的),比如
字典
集合
列表和元组的差异

列表 元组
可修改 不可修改
[‘a’,‘b’,‘c’] (‘a’,‘b’,‘c’)

通用的序列操作

索引和切片

>>> name='Sudley'>>> name[0]'S'>>> name[-1]'y'>>> name[0:]'Sudley'>>> name[:]'Sudley'>>> name[4:]'ey'>>> name[:-3]'Sud'>>>

上面的切片中默认步长为1,我们可以自定义步长,但是需要注意步长不能为0

>>> name[0::2]'Sde'>>> name[0:5:2]'Sde'>>> name[0:4:2]'Sd'>>> name[4:0:2]''>>> name[4:0:-2]'ed'>>>

序列相加、相乘

>>> [1,2,3]*3[1, 2, 3, 1, 2, 3, 1, 2, 3]>>> [1,2,3] + ['4','5','6'] #一般而言不建议拼接不同类型的序列[1, 2, 3, '4', '5', '6']>>>

成员资格

>>> 'Su' in 'Sudley'True>>> db = [	['Sudley','111111'],	['root','123456'],	]>>> u='Sudley'>>> p='123456'>>> [u,p] in dbFalse>>> p='111111'>>> [u,p] in dbTrue>>>

长度、最大值和最小值

>>> num = ['a','b','c']>>> len(num)3>>> min(num)'a'>>> max(num)'c'>>>

列表

列表方法

方法 描述
alist.append(obj) 追加元素,等同于alist[len(alist):len(alist)] = [obj]
alist.clear() 删除alist所有元素
alist.count(obj) 返回alist中与obj相等的元素个数
alist.copy() 返回alist的副本,注意是浅复制
alist.extend(sequence) 等同于alist[len(alist):len(alist)] = sequence
alist.index(obj) 返回第一个与obj相等的元素的索引,如果没有则触发ValueError异常
alist.insert(index,obj) 在index索引左边插入obj;如果index > 0,就等同于alist[index:index] = [obj]
alist.pop([index]) 删除并返回指定索引(默认是-1)
alsit.remove(obj) 等同于del alist[alist.index(obj)]
alsit.reverse() 就地以相反的顺序排列列表的元素
alist.sort([cmp][,key][,reverse]) 就地对alist的元素进行排序(稳定排序)。可通过提供比较函数cmp、键值数key(创建用户排序的键)和降序标志reverse(一个布尔值)进行定制

浅复制相关概念可参考

基本操作

>>> x = [1,2]       #列表赋值>>> x[1] = 3>>> x[1, 3]>>> name = list('Sudley')     #列表和字符串之间的转换>>> name['S', 'u', 'd', 'l', 'e', 'y']>>> str(name)"['S', 'u', 'd', 'l', 'e', 'y']">>> for i in range(0,len(name)):	name1 = name1 + name[i]	>>> name1'Sudley'>>> name[5:] = list('eee')    #切片赋值,可以实现插入或删除列表元素>>> name['S', 'u', 'd', 'l', 'e', 'e', 'e', 'e']>>> name[0:5] = []>>> name['e', 'e', 'e']>>> del name[1:]>>> name['e']>>>

列表方法

>>> #列表末尾追加元素>>> num = [1,2]>>> num.append(3)>>> num[1, 2, 3]>>> num = [1,[1,2,3],2,3]>>> num2 = num.copy()>>> num[1][1] = 11>>> num2[1, [1, 11, 3], 2, 3]>>> num[0] = 0>>> num[0, [1, 11, 3], 2, 3]>>> num2[1, [1, 11, 3], 2, 3]>>>>>> #列表拷贝>>>> num = [1, 2, 3]>>> num1 = num >>> num2 = num.copy() >>> num3 = num[:] >>> num[1] = 'a'>>> num[1, 'a', 3]>>> num1[1, 'a', 3]>>> num2[1, 2, 3]>>> num3[1, 2, 3]>>> #元素计数>>> num = [[1,2],1,1,[2,1,[1,2]]]>>> num.count(1)2>>> num.count([1,2])1>>> #列表扩展>>> a = [1,2]>>> b = [3,4]>>> a + b[1, 2, 3, 4]>>> a[1, 2]>>> a.extend(b)>>> a[1, 2, 3, 4]>>> a.append(b)>>> a[1, 2, 3, 4, [3, 4]]>>> #索引,只查找第一个出现的索引>>> a.index(3)2>>> a.index([3,4])4>>> a.append(3)>>> a.index(3)2>>> a[1, 2, 3, 4, [3, 4], 3]>>>#插入对象 >>> a.insert(2,2.5)>>> a[1, 2, 2.5, 3, 4, [3, 4], 3]>>> a.insert(4,3.5)>>> a[1, 2, 2.5, 3, 3.5, 4, [3, 4], 3]>>> a.insert(-2,22)>>> a[1, 2, 2.5, 3, 3.5, 4, 22, [3, 4], 3]>>> >>>#删除元素 >>> a.pop()3>>> a.pop(0)1>>> >>> a[2, 2.5, 3, 3.5, 4, [3, 4]]>>> a.append(a.pop())>>> a[2, 2.5, 3, 3.5, 4, [3, 4]]>>> a[1] = 2>>> a[2, 2, 3, 3.5, 4, [3, 4]]>>> a.remove(2)>>> a[2, 3, 3.5, 4, [3, 4]]>>>#排序>>> a = [1,3,2]>>> a.reverse()>>> a[2, 3, 1]>>> a.sort()>>> a[1, 2, 3]>>> a.reverse()>>> a[3, 2, 1]>>>#常见错误>>> b = a.sort()>>> a[1, 2, 3]>>> b>>> b = a.pop(1)    #pop()是唯一即修改列表又返回非None值的列表方法>>> b2>>>

元组

元组最大的特点是不能修改,一般用作字典的键

>>> a = (1,2)>>> a[0]1>>> a[0] = 2Traceback (most recent call last):  File "
", line 1, in
a[0] = 2TypeError: 'tuple' object does not support item assignment>>> a(1, 2)>>> a = 1,2>>> a(1, 2)>>> a = 1,>>> a(1,)>>> a = (1) #元组的括号可以省略但是逗号不能省略>>> a1>>> type(a)
>>> a = (1,) >>> type(a)
>>> a(1,)>>>

转载地址:http://xuiti.baihongyu.com/

你可能感兴趣的文章
自定义控件:飞入飞出的效果
查看>>
自定义控件:动态获取控件的高
查看>>
第三方开源库:nineoldandroid:ValueAnimator 动态设置textview的高
查看>>
第三方SDK:百度地图SDK的使用
查看>>
Android studio_迁移Eclipse项目到Android studio
查看>>
JavaScript setTimeout() clearTimeout() 方法
查看>>
CSS border 属性及用border画各种图形
查看>>
转载知乎-前端汇总资源
查看>>
JavaScript substr() 方法
查看>>
JavaScript slice() 方法
查看>>
JavaScript substring() 方法
查看>>
HTML 5 新的表单元素 datalist keygen output
查看>>
(转载)正确理解cookie和session机制原理
查看>>
jQuery ajax - ajax() 方法
查看>>
将有序数组转换为平衡二叉搜索树
查看>>
最长递增子序列
查看>>
从一列数中筛除尽可能少的数,使得从左往右看这些数是从小到大再从大到小...
查看>>
判断一个整数是否是回文数
查看>>
经典shell面试题整理
查看>>
腾讯的一道面试题—不用除法求数字乘积
查看>>