python3之listAndTuple

来源:互联网 发布:linux vi退不出来 编辑:程序博客网 时间:2024/05/22 00:40

#关于列表与元组


#列表 list有序、可增加、可删除、可直接镶嵌list、元素数据类型也可以不相同


# 1.0 定义 list列表


classmates = ['Michael','Bod','Tracy'#注意 list列表是用中括号定义的

print(classmates)#['Michael','Bod','Tracy']

L = ['Apple',123, True]

print(L)#['Apple', 123, True]

s = ['python','java', ['asp','php'], 'scheme']

print(s)#['python', 'java', ['asp', 'php'], 'scheme']

p = ['str','chr', L, 'double']

print(p)#['str', 'chr', ['Apple', 123, True], 'double']


# 1.1 List的长度与取值

classmatesLen = len(classmates)#可以利用 len()函数直接得到 list的长度 list的元素个数

print(classmatesLen)#3

pLen = len(p)#此时 p len并非6因为 L是作为一个元素而存在的所以应该是4p列表就是一个二维列表

print(pLen)#4


classmatesZero = classmates[0]#可以通过下标进行取出相应的元素

print(classmatesZero)# 'Michael'

classmatesThree = classmates[3]#当所取下标大于 list len时,会报数组越界错

print(classmatesThree)#Traceback (most recent call last):

  #File "<stdin>", line 1, in <module>

#IndexError: list index out of range

classmatesMinusOne = classmates[-1]#负数就是倒着数 list的元素,同理超出-len(list)也会报数组越界的错

print(classmatesMinusOne)#'Tracy'


#1.2 添加

classmatesAppend = classmates.append('Adam')#添加到 list末尾一个元素小括号单引号

print(classmatesAppend)#['Michael','Bod','Tracy','Adam']

classmatesInsert = classmates.insert(0,'Jack'#想指定位置添加指定元素 

print(classmatesInsert)#['Jack','Michael',Bod','Tracy','Adam']

classmatesInsertMax = classmates.insert(6,'John')#当指定的下标大于列表的最大下标时会将该指定元素直接添加到列表的最后一个位置 

print(classmatesInsertMax)#['Jack','Michael',Bod','Tracy','Adam','John']

classmatesInsertLittle = classmates.insert(-10,'Dives')#当指定的下标小于最小-(len(list))会将指定的元素直接添加到最前的位置

print(classmatesInsertLittle)#['Dives','Jack','Michael',Bod','Tracy','Adam','John']


# 1.3 删除替换

classmatesPop = classmates.pop()#直接调用 pop()函数删除的事 list最后一个元素

print(classmatesPop)#['Dives','Jack','Michael',Bod','Tracy','Adam']

classmatesPopOne = classmates.pop(1)#删除相应位置的元素

print(classmatesPopOne)#['Dives','Michael',Bod','Tracy','Adam']

classmatesPopError = classmates.pop(10)#当所要删除的下标不属于 -len(list) len(list)之间时,会报数组越界的错


classmates[1] ='Sarch' #利用下标直接进行替换相应位置的元素

print(classmates)#['Dives','Sarch',Bod','Tracy','Adam']

classmates[10] ='Hello' #同样所替换的下标不属于 -len(list) len(list)之间时,会报数组越界的错


#tuple元组一旦初始化就不可修改、可以是不同类型的元素


#2.0 定义 tuple元组

classTuple = ('Michael','Bob', 'Tracy')#tuple 元组定义用的是小括号 ()

t = (1,)#当定义的 tuple只有一个元素时,必须在元素后面加上 ","目的是为了与 t=1代码区分


#2.1 伪可变的 tuple元组

classFakeTuple = ('a','b',['A','B'])

classFakeTuple[2][0] ='x'

classFakeTuple[2][1] ='y'

print(classFakeTuple)#('a', 'b', ['X', 'Y'])

    #此时得到的 tuple元素看似变了,其实并没有改变改变的元素是 list['A','B']

   #tuple所谓的不变是说,tuple的每个元素,指向永远不变即指向'a',就不能改成指向'b',指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的!


#总结:

# 1.0 listtuplePython内置的有序集合,一个可变,一个不可变。根据需要来选择使用它们。

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








原创粉丝点击