Python--5 列表一个打了激素的数组
整数
浮点数
字符串
对象
创建列表
方式一:创建一个普通列表
>>>member = ['jhon', 'dog', 'pig' ]
>>>member
['jhon', 'dog', 'pig' ]
方式二: 创建一个混合列表
>>>mix = [1, 'fish', 3.14, [1, 2, 3]]
方式三:创建一个空列表
>>> empty = []
向列表添加元素:
append()
>>> member.append('cat')
>>> member
['jhon', 'dog', 'pig', 'cat']
>>> len(member)
4
>>>member.append('fish', 'heike')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: append() takes exactly one argument (2 given)
extend()
>>> member.extend('fish','heike')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: extend() takes exactly one argument (2 given)
>>> member.extend(['fish','heike'])
>>> member
['jhon', 'dog', 'pig', 'cat', 'fish', 'heike']
insert()
>>> member.insert(1,'中关村')
>>> member
['jhon', '中关村', 'dog', 'pig', 'cat', 'fish', 'heike']
从列表中获取元素
跟数组一样,我们可以通过元素的索引直(index)从列表获取单个元素,注意,列表索引从0开始
>>> member[0]
'jhon'
交换元素位置
>>>temp = member[1]
>>> member[0] = member[1]
>>> member[1] = temp
>>> member
['中关村', 'jhon', 'dog', 'pig', 'cat', 'fish', 'heike']
从列表中删除元素
remove()
>>> member.remove('pig')
>>> member
['中关村', 'jhon', 'dog', 'cat', 'fish', 'heike']
>>> member.remove('小鱼儿')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
del
>>> del member[1]
>>> member
['中关村', 'dog', 'cat', 'fish', 'heike']
>>> del member
>>> member
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'member' is not defined
pop() 有返回值
>>> member = ['中关村', 'dog', 'cat', 'fish', 'heike']
>>> member.pop()
'heike'
>>> member.pop()
'fish'
>>> member
['中关村', 'dog', 'cat']
>>> member.pop(1)
'dog'
>>> member
['中关村', 'cat']
列表分片(slice)
利用索引值,每次我们可以从列表获取一个元素,每次我们可以从列表获取一个元素,但是我们总是贪心的,如果一次性需要获取多个元素,有没有办法?利用列表分片,我们可以简单的实现这个要求。
得到原列表的拷贝
>>> member[0:2]
['中关村', 'cat']
简洁方案
>>> member[:1]
['中关村']
>>> member[1:]
['cat']
>>> member[:]
['中关村', 'cat']
得到原列表的拷贝
>>> member2 = member[:]
>>> member2
['中关村', 'cat']
列表的一些常用操作符
比较操作符
逻辑操作符
连接操作符
重复操作符
成员关系操作符
比较操作符
>>> list1 = [123]
>>> list2 = [234]
>>> list1 > list2
False
>>> list1 = [123,456]
>>> list2 = [234,123]
>>> list3 = [123,456]
>>> list1 > list2
逻辑操作符
>>> (list1 < list2) and (list1 == list3)
True
list中的元素一个一个进行比较
连接操作符
>>> list4 = list1 + list2
>>> list4
[123, 456, 234, 123]
list.extend()
+ 不能实现新元素的添加操作
>>> list2 + 345
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: can only concatenate list (not "int") to list
重复操作符
>>> list2 * 3
[234, 123, 234, 123, 234, 123]
>>> list2 *=3
>>> list2
[234, 123, 234, 123, 234, 123]
成员关系操作符 in not in
>>> 123 in list3
True
>>> 'fish' not in list3
True
>>> 123 not in list3
False
列表中的列表--人为引入一层
>>> list5 = [123, ['fish','cat'], 456]
>>> 'fish' in list5
False
>>> 'fish' in list5[1]
True
>>> list5[1][1]
'cat'
列表的小伙伴
>>> 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']
>>> list3.count(123)
1
>>> list4
[123, 456, 234, 123]
>>> list4.index(123)
0
>>> list4.index(123, 1, 4)
3
>>> list4.reverse()
>>> list4
[123, 234, 456, 123]
>>> list4.sort()
>>> list4
[123, 123, 234, 456]
sort(func,key) func-->排序的算法 key-->跟算法搭配的关键字 默认使用归并排序
sort([func, key,] reverse = False)默认设置
>>> list4.sort(reverse = True)
>>> list4
[456, 234, 123, 123]
拷贝补充 python的变量就像一个标签,就一个名字而已,贴哪是哪儿
>>> list5 = list4[:]
>>> list6 = list4
>>> list5
[456, 234, 123, 123]
>>> list6
[456, 234, 123, 123]
>>> list4.sort()
>>> list5
[456, 234, 123, 123]
>>> list6
[123, 123, 234, 456]