python路2---列表的操作,增伤改查

#!/usr/bin/python3    
#三元运算    
a,b,c = 1,2,3
d = a if a>b else c
print (d)

#列表:增删改查
>>> name =[1,4,5,3,2,6,8,9,7,10]    #定义一个列表name
#
>>> len(name)        #列表长度
10
>>> name            #查询整个列表
[1, 4, 5, 3, 2, 6, 8, 9, 7, 10]
>>> name[0],name[1]        #按下表查找,name[0]为列表第一个元素,以此类推
(1, 4)
>>> name[3]        
3
>>> name[1:2]        #查询列表的一段,即:切片,从左到右,且包左不包右
[4]
>>> name[0:5]
[1, 4, 5, 3, 2]
>>> name[0:5:2]        #2是步调,隔一个取一个
[1, 5, 2]
>>> name[-3:-1]
[9, 7]
>>> name.index(4)    #列表元素查找,返回元素所在的列表的位置
1
>>> name.index(5)
2
>>> name.count(10)    #列表元素10在列表中有几个
1



#列表增加元素

>>> name.append(50)    #append方法在列表末尾追加元素50
>>> name
[1, 4, 5, 3, 2, 6, 8, 9, 7, 10, 50]
>>> name.insert(1,60)        #insert方法:在name[1]的前面增加元素60
>>> name
[1, 60, 4, 5, 3, 2, 6, 8, 9, 7, 10, 50]
>>> 


#列表元素修改
>>> name[2] = 22
>>> name
[1, 60, 22, 5, 3, 2, 6, 8, 9, 7, 10, 50]



#列表元素删除
>>> name = [1, 60, 22, 5, 3, 2, 6, 8, 9, 7, 10, 50]
>>> name.remove(2)            #删除name中元素22
>>> name
[1, 60, 22, 5, 3, 6, 8, 9, 7, 10, 50]
>>> del name[2]                #删除name中第2个位置的元素,即:22
>>> name
[1, 60, 5, 3, 6, 8, 9, 7, 10, 50]
>>> name.pop()                #默认删除列表最后一个元素
50
>>> name
[1, 60, 5, 3, 6, 8, 9, 7, 10]
>>> name.pop(1)                #删除列表第1个位置的元素
60
>>> name
[1, 5, 3, 6, 8, 9, 7, 10]
>>> name.clear()            #清空列表
>>> name
[]
>>> del name               #删除列表
>>> name
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'name' is not defined
>>> 


#列表的复制:copy,deepcopy
#引用:是指保存的值为对象的内存地址
a = [1,2]   #创建列表a,将在内存中开辟一段内存地址,存储【1,2】,a是这段地址的门牌号
b = a  #a列表赋值给b,实际是将b指向a的内存地址,并没有新开辟一段新的内存地址
        #修改a中的元素,b就会跟着变化;修改b中的元素,a也会跟着变化
>>> a = [1,2]        #创建列表a,将在内存中开辟一段内存地址,存储【1,2】,a是这段地址的门牌号
>>> b = a   #a列表赋值给b,实际是将b指向a的内存地址,并没有新开辟一段新的内存地址
            #修改a中的元素,b就会跟着变化;修改b中的元素,a也会跟着变化

>>> b [0] = 'bb'
>>> a [1] = 'aa'
>>> a
['bb', 'aa']
>>> b
['bb', 'aa']

>>> c = a[:]        #将列表a的所有元素赋值给c,会新开辟一段内存空间存放c的元素
>>> c
['bb', 'aa']
>>> a
['bb', 'aa']
>>> c[0] = 'cc'         #a和c之间没有任何关系
>>> c
['cc', 'aa']
>>> a
['bb', 'aa']
>>> 
##注意:c = a[:]这种方法只是用于简单的列表(只有一层),如果列表中还存在子列表的话,
###这种方法就不适用了
>>> a1 = [1,2,3,[1,2,3]]
>>> b1 = a1[:]
>>> b1
[1, 2, 3, [1, 2, 3]]
>>> b1[3][0] = 'b1'        #子列表还以引用的同一个内存地址,互相影响
>>> a1[3][1] = 'a1'
>>> a1
[1, 2, 3, ['b1', 'a1', 3]]
>>> b1
[1, 2, 3, ['b1', 'a1', 3]]
#copy:浅copy,d=a.copy()与c = a[:]效果相同
#deepcopy:深copy。列表有多层时,都为完全复制过来,不会和原来的列表有关联
>>> import copy
>>> a1 = [1,2,3,[1,2,3]]
>>> b1 = copy.deepcopy(a1)            #a1 和b1之间没有关联
>>> b1
[1, 2, 3, [1, 2, 3]]
>>> a1
[1, 2, 3, [1, 2, 3]]
>>> a1[0] = 'a1'
>>> b1[1] = 'b1'
>>> a1
['a1', 2, 3, [1, 2, 3]]
>>> b1
[1, 'b1', 3, [1, 2, 3]]
>>> a1[3][0] = 'a1'
>>> b1[3][1] = 'b1'

#列表循环
>>> name = [1,2,3,4,5,6,7,8,9]
>>> for i in name:
...     print (i)
... 
1
2
3
4
5
6
7
8
9
>>> 
>>> for i in enumerate(name):print(i)        #为列表加序号
... 
(0, 1)
(1, 2)
(2, 3)
(3, 4)
(4, 5)
(5, 6)
(6, 7)
(7, 8)
(8, 9)

转载于:https://www.cnblogs.com/tobet/p/6921295.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值