Python学习2--list学习

序列都可以进行的操作包括索引,切片,加,乘,检查成员。
Python有6个序列的内置类型,但最常见的是列表和元组。

列表

列表的数据项不需要具有相同的类型。

>>> list01 = ['runoob', 786, 2.23, 'john', 70.2]
>>> list02 = [123, 'john']
>>> names = ['a','b','c','d']
截取

和大多数编程语言一样,列表的第一个元素的索引是0,而不是1。如果要输出最后一个元素可以使用-1,倒数第二个可以使用-2,以此类推。

>>> print names[0]
>>> print names[-1]
>>> print names[0:3]
a
d
['a', 'b', 'c']
修改/添加/删除

修改:其实就是对元素的重新赋值

>>> names[0]='A'
>>> print(names)
['A', 'b', 'c', 'd']

末尾添加:append()

>>> names.append('e')
>>> print(names)
['a', 'b', 'c', 'd', 'e']

删除:pop,remove,del
1) pop()

>>> names.pop()
'e'

如果没有指定下标,则默认会删除最后一个元素

>>> names.pop(2)
'c'

2) remove()

>>> names.remove('e')
>>> names
['a', 'b', 'c', 'd']

3)del

>>> del names[4]
>>> names
['a', 'b', 'c', 'd']

查找元素所在位置:index()

>>> names.index('c')
2

统计元素的次数:count()

>>> names.append('d')
>>> names.count('d')
2

反转:reverse()

>>> names.reverse()
>>> names
['d', 'c', 'b', 'a']

清空:clear()

>>> names.clear()
>>> names
[]

插入: insert(索引,字符串)

>>> names.insert(0,'hello')
>>> print(names)
['hello', 'a', 'b', 'c', 'd']

排序:sort()按照ascii码来进行排序

>>> names.sort()
>>> print(names)
['a', 'b', 'c', 'd', 'hello']

拼接两个列表:extend()

>>> names = ['a','b','c','d']
>>> place = ['o','p','q']
>>> names.extend(place)
>>> print(names)
['a', 'b', 'c', 'd', 'o', 'p', 'q']
  • 第一种复制:
>>> names = ['a','b','c','d']
>>> names1 = names
>>> names1[0] = 'A'
>>> print(id(names),'   ',names)
>>> print(id(names1),'   ',names1)
140132297498568     ['A', 'b', 'c', 'd']
140132297498568     ['A', 'b', 'c', 'd']

我们发现,修改names1影响了names,这是因为通过ID函数发现,二者的ID是相同的。(此时相当于共用一个内存空间)。

  • 第二种复制(浅复制):
>>> names = ['a','b','c','d']
>>> names1 = names[:]
>>> #names1 = list(names) #效果同上
>>> #names1 = [i for i in names] #效果同上
>>> #names1=copy.copy(names) #效果同上
>>> names1[0] = 'A'
>>> print(id(names),'   ',names)
>>> print(id(names1),'   ',names1)
140165287773768     ['a', 'b', 'c', 'd']
140165287334472     ['A', 'b', 'c', 'd']

通过ID函数发现,二者ID不相同。修改names1没有影响names
注:浅复制虽然ID是不同的,但是值的修改并不总是独立的,比如下面这篇博客使用append方法时,二者会互相影响:
http://blog.csdn.net/a6225301/article/details/48833125

  • 第三种复制(深复制)
>>> import copy

>>> names = ['a','b','c','d']
>>> names1=copy.deepcopy(names)
>>> names1[0] = 'A'
>>> print(id(names),'   ',names)
>>> print(id(names1),'   ',names1)
140635533511880     ['a', 'b', 'c', 'd']
140635533584200     ['A', 'b', 'c', 'd']

二者ID不同,深复制后的两个变量则指向的是两个不同的对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值