列表的一些常用操作符
- 比较操作符
- 逻辑操作符
- 连接操作符
- 重复操作符
- 成员关系操作符
比较操作符 > = <、逻辑操作符 and
>>> list1 = [123]
>>> list2 = [234]
>>> list1 > list2
False
>>> list1 = [123,456]
>>> list2 = [234,123]
>>> list1 > list2
False
>>> list3 = [123,456]
>>> (list1 < list2) and (list1 == list3)
True
连接操作符 +
>>> list1 = [123]
>>> list2 = [456]
>>> list3 = list1 + list2
>>> list3
[123, 456]
这个 + 不能随便用,必须 + 两边类型一样才可以
>>> list1 + 456
Traceback (most recent call last):
File "<pyshell#13>", line 1, in <module>
list1 + 456
TypeError: can only concatenate list (not "int") to list
那么想添加元素到列表中用什么方法呢?
1.append()
>>> list1 = [123]
>>> list1.append(456)
>>> list1
[123, 456]
2.insert()
>>> list1 = [456]
>>> list1.insert(0,123)
>>> list1
[123, 456]
重复操作符 *
>>> list1 = [123,456]
>>> list1 *= 3
>>> list1
[123, 456, 123, 456, 123, 456]
成员关系操作符 in
>>> list1 = [123]
>>> 123 in list1
True
>>> 456 not in list1
True
>>> list1 = [123,['haha','xixi'],456]
>>> 'haha' in list1
False
>>> 'haha' in list1[1]
True
>>> list1[1][1]
'xixi'
列表某个元素的个数 count()
>>> 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=[123,123,123,456,456,123,123,123,123]
>>> list1.count(123)
7
列表某个元素的位置 index()
>>> list1=[123,123,123,456,456,123,123,123,123]
>>> list1.index(123,3,7)
5
list1.index(123,3,7)意思是,列表中123这个元素,在列表中3-7的位置范围内第一次出现的位置是什么?
列表进行翻转 reverse()
>>> list1 = [123,456,789]
>>> list1.reverse()
>>> list1
[789, 456, 123]
列表的排序 sort()
>>> list1 = [7,4,1,8,5,2,9,6,3,0]
>>> list1.sort()
>>> list1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list1.sort(reverse=True)
>>> list1
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
列表的拷贝
>>> list1
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> list2 = list1 [:]
>>> list2
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> list3 = list1
>>> list3
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
这里我们提出一个疑问:两种拷贝有什么不一样呢?
答案:第一种list2 = list1 [:]是拷贝了一份完全一样的列表,也就是list2不随list1的改变而改变(有原则)
第二种list3=list1 是墙头草,也就是list3在后续中会随着list1的改变而发生改变(没有原则)
举个简单的示例:(接着上面的数据进行改变)
>>> list1.sort()
>>> list1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> list2
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> list3
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]