3.列表(一个打了激素的数组)

注解:列表的索引从0开始

1.创建列表
    empty = []
    list1 = [1,2,3]
    list2 = [1,2,[1,2,3],'list',3.14]
2.向列表的尾部添加元素:append()
    list1.append(100)
3.extend():扩张:list1变成list1+list2
    list1.extend(list2)
4.insert(插入位置,插入内容)
    list1.insert(0,'FishC')

(1)从列表中获取元素:list1[index]
(2)从列表中删除元素:
remove:必须知道列表中的元素的value才能删除;执行一次只删除一个元素。
del:删除列表中的元素;删除列表
    del list1
    del list1[2]
pop:每次都是最后一个元素被删除并返回
    value = list1.pop()

(3)列表分片(创建列表的拷贝,并不修改列表)
注解:我们得到的只是列表分片后的一个拷贝,并不会修改原列表的值。
    list1[0:3]  得到list1[0],list1[1],list1[2],没有list1[3]
    list1[:3]

    list1[3:]
    list1[:]  得到列表的拷贝

>>> list1 = [1,200]
>>> list2 = [0,300]
>>> list1>list2    比较大小
True

>>> list1 = list1+list2   +表示list的拼接
>>> list1
[1, 200, 0, 300]

>>> list1 *= 3    *表示重复多少次
>>> list1
[1, 200, 0, 300, 1, 200, 0, 300, 1, 200, 0, 300]

>>> 1 in list1   in表示判断某个元素是否在list1中
True

>>> list3 = [123,['小甲鱼','Kobe'],456,'mary']
>>> '小甲鱼' in list3
False
>>> '小甲鱼' in list3[1]
True

列表的小伙伴们

python
>>> dir(list)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']


>>> list = [1,1,1,'小甲鱼',123,'mary']
>>> list.count(1)  #count:出现多少次
3

>>> list.index(1)  #index:返回索引位置
0
>>> list.index(1,1,4)   #1,4表示查找的索引范围
1


>>> list.reverse()  #直接反转list
>>> list
['Mary', 'Helen', 100, 5, 1]

>>> list = [100,'Helen',1,5,'Mary']
>>> list.sort()   #对list进行排序
>>> list
[1, 5, 100, 'Helen', 'Mary']
注:sort(算法,key,reverse=false/true)

【特殊情况】关于分片/拷贝概念的补充
初始化:
>>> l1 = [0,1,3,2,6,4,5]
>>> l2 = l1[:]  #l2是l1的拷贝
>>> l2
[0, 1, 3, 2, 6, 4, 5]
>>> l3 = l1     #l3是l1的复制
>>> l3
[0, 1, 3, 2, 6, 4, 5]
对l1进行排序,查看l2/l3的变化:
>>> l1.sort()
>>> l1
[0, 1, 2, 3, 4, 5, 6]
>>> l2   #l2不发生变化
[0, 1, 3, 2, 6, 4, 5]
>>> l3   #l3发生变化,变成与l1相同
[0, 1, 2, 3, 4, 5, 6]
【解释】为什么会发生这种情况?因为在python中,l2列表是l1列表的一份拷贝,会生成一份列表的拷贝。
而,l3是赋值,只是多出来一个l3指向l1的标签。
    因此,l1改变时,l2并不发生改变(因为l2有自己的拷贝);但是l3会随着l1改变而改变。
【因此】在使用拷贝的时候,我们选用分片的方式进行。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值