python列表添加元组_python入门:列表和元组

列表与元组的主要不同在于,列表是可以修改的,元组不可以。列表适用于需要中途添加元素的情形,元组适用于出于某种考虑禁止修改序列的情形。在需要处理一系列值时,序列很有用,在数据库中,你可能使用序列来表示人,其中第一个表示姓名,第二个表示年龄。用列表表示如下:1user=['Andy',20]

序列还可包含其他序列user=['Andy',20]use=['john',21]database=[user,usr]database[['Andy',20], ['john',21]]data=['Aurora',user]data['Aurora', ['Andy',20]]

有几种操作使用于所有序列,包括索引、切片、相加、相乘和成员检查。另外还有一些内置函数,可用于确定序列的长度以及找出序列中最大和最小的元素。

索引:

序列中所有的元素都有编号-从0开始递增1234set='Hello'set[0]'H'字符串就是由字符组成的序列,索引0指向第一个元素,这里为字母H,不同于其他一些语言,python没有表示字符的类型。因此一个字符就是只包含一个元素的字符串。

这称为索引,还可使用负索引来获取元素12set[-1]'o'

对于字符串字面量(以及其他序列字面量)可直接对其执行索引操作,无需先将其赋给变量,这与先赋给变量在对变量执行索引操作的效果一样。12'Hello'[1]'e'

如果函数调用返回一个序列,可直接对其执行索引操作。例如,你只想获取用户输入的姓名第二位:name=input('name: ')[2]name: johnname'h'

切片:

使用索引来访问单个元素外,还可使用切片来访问特定范围内的元素,使用两个索引用冒号分隔:tag='python web site'tag[9:30]'How long have you bee'tag[49:-4]'python web site'

切片适用于提取序列一部分,其中的编号非常重要,第一个索引是包含第一个元素的编号,第二个索引是切片后前一位的元素编号(下标从0开始)number=[1,2,3,4,5,6,7,8,9,10]number[3:6][4,5,6]

两个索引来指定切片的边界,其中一个索引指定的元素包含在切片内,第二个索引指定的元素不包含在切片内。

简写:# 如果切片结束与序列末尾,可省略第二个索引:number[-3:][8,9,10]# 如果切片始于序列开头,可省略第一个索引:number[:3][1,2,3]# 复制序列number[:][1,2,3,4,5,6,7,8,9,10]

步长:

执行切片操作时,显示或隐示地制定起点和终点,但通常省略另一个参数,即步长。在普通切片中,步长为1(从一个元素移动到下一个元素),切片包含起点和终点之间的所有元素。1234number[0:10:1][1,2,3,4,5,6,7,8,9,10]number[0:10:2][1,3,5,7,9]

也可以简写:12number[::4][1,5,9]

步长不能为0,但是可以是负数,这样获取元素的位置是从右向左。12number[::-2][10,8,6,4,2]

步长为正数时,它从起点移到终点,步长为负数时,它从终点移到起点。

序列相加:[1,2,3]+[4,5,6][1,2,3,4,5,6][1,2,3]+'world'Traceback (most recent call last):File "", line1,in [1,2,3]+'world'TypeError: can only concatenatelist (not "str") tolist

不能拼接序列与字符串,虽然他们都是序列,一般不能拼接不同类型的序列。

乘法:'hello' * 2'hellohello'[2]* 3[2,2,2]

如先定义序列但并不为其赋值可用name=[None]* 5name[None,None,None,None,None]

成员资格:

检查特定的值是否包含在序列中,使用in.满足条件返回true,否则返回false.name='Andy''A' in nameTrue# 对于字符串来说只有它包含的字符才是其成员或元素。'p' in 'python'True

长度、最小值、最大值number=[100,20,80]len(number)3max(number)100min(number)20max(2,3,7)7

列表常用方法#赋值x = [1,2,1]x[1]= 3x[1, 3, 1]# 删除元素x = [1,3,1]del x[1]x[1, 1]# 给切片赋值name=list('Perl')name['P','e','r','l']name[3:]=list('ar')name['P','e','r','a','r']# 还可以在不删除原有元素的情况下插入新元素name[1:1]=list('el')name['P','r','l','e','r','a','r']del name[1::2]name['P','l','r','r']

方法是与对象(列表、数、字符串等)联系紧密的函数。# 在末尾追加元素:appendnumber.append(4)number[1, 2, 3, 4]# 清空列表:clearnumber.clear()number[]# 复制:copya = [1,2,3]b = ab[1]=4b[1, 4, 3]a[1, 4, 3] a = [1,4,3]b=a.copy()b[1]=5a[1, 4, 3]# 计数:count['to','be','or','not','to','be'].count('to')2x=[[1,2],1,2,[1,2,[2,1]]]x.count(1)1# 扩展追加exenda =[1,2,3]b= [4,5,6]a.extend(b)a[1, 2, 3, 4, 5, 6]b[4,5,6] a+b[1, 2, 3, 4, 5, 6, 4, 5, 6]a[1, 2, 3, 4, 5, 6]b[4, 5, 6] # 查找第一次在序列中出现的索引a =['to','be','or','not','to','be']a.index('be')1a[1]'be'# inster:插入number = [1,2,3,4,5]number.insert(2,8)number[1, 2, 8, 3, 4, 5]# pop删除末尾最后一个元素并返回删除元素,pop是唯一既修改列表又返回一个非none值的列表方法。number.pop()5number[1, 2, 8, 3, 4] number.insert(0,number.pop(0)) # 删除第一个指定值的元素a =['to','be','or','not','to','be']a.remove('to')a['be','or','not','to','be']# 倒序排列:reversenumber = [2,8,3,4]number.reverse()number[4, 3, 8, 2]# 对列表就地排序指对原表进行修改:sortnumber = [4,3,8,2]number.sort()number[2, 3, 4, 8]

元组:不可修改的序列

元组的几种写法。(1,2,3)1,2,3(2,)2,3 * (20+2)663* (20+2,)(22, 22, 22)(22)与22完全等效,加上逗号,就能完全改变表达式的值

函数tuple的工作原理与list很像,它将一个序列作为参数,并将其转换为元组。如果参数是元组,就原封不动的返回。tuple([1,2,3])(1,2,3)tuple('abc')('a','b','c')tuple((1,2,3))(1,2,3)x = 1,2,3x[1]2x[0:2](1,2)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值