python 的列表

一、给列表赋值

包括给列表赋值、空列表、数字列表、嵌套列表

>>> member = ['计算机','销售公司','数组','自动化设备','系统集成']
空列表
>>> empty = []
数字列表
>>> number = [1,2,3,4,5]
嵌套列表
>>> mix = [1,2,3.14,[4,5,6]]
>>> miy = [1,2,3,number]
>>> miy
[1, 2, 3, [1, 2, 3, 4, 5]]
>>> str = ['a1','c2','f3']
>>> mix = [1,2,'a','b',str]
>>> mix
[1, 2, 'a', 'b', ['a1', 'c2', 'f3']]
>>> mix = [1,2,3.14,['a','b','c']]

>>> list1 = mix
并未产生新的列表,只是对 mix 标识的列表增加了一个新的标识,即 mix 和 list1 都指向了相同的列表
当修改了 mix 的列表后, 也就相当于 list1 指向的列表被修改了

二、向列表添加元素

用append

>>> Ctrl + F6
Restart shell

>>> member = ['计算机','销售公司','数组','自动化设备','系统集成']
>>> mem1 = member
>>> member.append('办公司')
>>> member
['计算机', '销售公司', '数组', '自动化设备', '系统集成', '办公司']
>>> mem1
['计算机', '销售公司', '数组', '自动化设备', '系统集成', '办公司']
验证了上一节中关于列表标识的描述

>>> len(member)
6

>>>

三、列表的扩张

用 extend

>>> member = ['a1','b1','c1']
>>> ext = ['a2','b2']
>>> member.extend(ext)
>>> member
['a1', 'b1', 'c1', 'a2', 'b2']

四、列表的插入

用 insert

>>> Ctrl + F6
Restart shell
>>> member = ['a1', 'b1', 'c1', 'a2', 'b2']
>>> member.insert(1,'paul')
>>> member
['a1', 'paul', 'b1', 'c1', 'a2', 'b2']
在元素1前插入了一个元素

>>> member.insert(0,'paul')
>>> member
['paul', 'a1', 'paul', 'b1', 'c1', 'a2', 'b2']
在元素0前插入了一个元素

五、获取元素的值

>>> member = ['计算机', '销售公司', '数组', '自动化设备', '系统集成及智慧工程']
>>> member[0]
'计算机'

>>> temp = member[0]
>>> member[0] = member[1]
>>> member[1] = temp
['销售公司', '计算机', '数组', '自动化设备', '系统集成及智慧工程']
交换两个元素的位置

六、从列表中删除元素

>>> member = ['计算机', '销售公司', '数组', '计算机', '自动化设备', '系统集成','智慧工程']
>>> member.remove('计算机')
>>> member
['销售公司', '数组', '计算机', '自动化设备', '系统集成', '智慧工程']

>>> member.remove('计算机')
>>> member
['销售公司', '数组', '自动化设备', '系统集成', '智慧工程']

>>> del member[1]
>>> member
['销售公司', '自动化设备', '系统集成', '智慧工程']

>>> member.pop()
'智慧工程'
>>> member
['销售公司', '自动化设备', '系统集成']

>>> name = member.pop(1)
>>> name
'自动化设备'
>>> member
['销售公司', '系统集成']

七、列表分片(slice)

>>> member = ['计算机', '销售公司', '数组', '自动化设备', '系统集成', '智慧工程']
>>> member[1:3]
['销售公司', '数组']
>>> member[:3]
['计算机', '销售公司', '数组']
>>> member[2:]
['数组', '自动化设备', '系统集成', '智慧工程']
>>> member[:]
['计算机', '销售公司', '数组', '自动化设备', '系统集成', '智慧工程']
>>> mem1 = member
>>> mem2 = member[:]
>>> mem1
['计算机', '销售公司', '数组', '自动化设备', '系统集成', '智慧工程']
>>> mem2
['计算机', '销售公司', '数组', '自动化设备', '系统集成', '智慧工程']

这里mem1和member是公用内存的,mem2是复制了一份,独有内存的。
用member.sort()排序之后,就可以看到
mem1也排序了,而mem2没有被排序。
这也更能说明,python的变量更像一个标签,数据可以被贴多个标签

八、列表比较和包含

>>> list1 = [123]
>>> list2 = [456]
>>> list1 > list2
False
>>> list1 = [1,2,3]
>>> list2 = [1,4,5]
>>> list1 > list2
False
>>> list4 = list1 + list2
>>> list1 * 3
[1, 2, 3, 1, 2, 3, 1, 2, 3]
>>> list1 = [1,2,3,5,7]
>>> 4 in list1
False
>>> 2 in list1
True
>>> list2 = [3,2]
>>> list2 in list1
False

九、显示相关函数

用 dir()

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

十、列表的复制、计数、查找、排序和求反

>>> list1 = [1,4,2]
>>> list1 *= 3
>>> list1
[1, 4, 2, 1, 4, 2, 1, 4, 2]
复制3份
>>> list1 *= 5
>>> list1
[1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2]
复制5份

>>> list1.count(1)
15
>>> list1.index(2)
2
从开始查找元素2

>>> list1.index(2,4,7)
5
从位置4到位置7查找元素2

>>> list1
[1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2, 1, 4, 2]
>>> list1.reverse()
>>> list1
[2, 4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1, 2, 4, 1]
求反

>>> list1 = [4,2,5,7,1,3,8,6,9]
>>> list1
[4, 2, 5, 7, 1, 3, 8, 6, 9]

>>> list1.sort()
>>> list1
[1, 2, 3, 4, 5, 6, 7, 8, 9]
递增排序

>>> list1.sort(reverse=True)
>>> list1
[9, 8, 7, 6, 5, 4, 3, 2, 1]
递减排序

十一、再论列表的标签性

>>>Ctrl + F6
Restart shell
>>> list1 = [4,2,5,7,1,3,8,6,9]
设置list1的内容

>>> list2 = list1
list2 指向了列表数据[4,2,5,7,1,3,8,6,9]

>>> list3 = list1[:]
list3 复制了列表数据[4,2,5,7,1,3,8,6,9]

>>> list1.sort()
对列表[4,2,5,7,1,3,8,6,9]进行排序

>>> list1
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list2
[1, 2, 3, 4, 5, 6, 7, 8, 9]
证明list1和list2指向同一个列表

>>> list3
[4, 2, 5, 7, 1, 3, 8, 6, 9]
证明list3和list1指向不同的列表

>>> list1 = [4,2,5,7,1,3,8,6,9]
给list1赋值新的列表

>>> list1
[4, 2, 5, 7, 1, 3, 8, 6, 9]
>>> list2
[1, 2, 3, 4, 5, 6, 7, 8, 9]
证明list1和list2指向了不同列表