Python3基础入门 list(列表)方法详述
2019-06-23 本文已影响26人
410ca74fb10e
写在前面
- 基于Python 3.7.2
- 环境:Anaconda 1.9.7
- 都是最基础的,有基础的忽略即可,下次写字典
- 内建方法没写,比如min max len sum 等后续统一更新
1. 列表方法详述
#打印列表的所有不带_的方法
for method1 in dir(list):
if "_" not in method1:
print(method1)
append
clear
copy
count
extend
index
insert
pop
remove
reverse
sort
1.1 append
help(list.append)
Help on method_descriptor:
append(self, object, /)
Append object to the end of the list.
释义:添加一个对象到列表的末尾,追加,类似于linux中的追加重定向(>>),还有vi的a命令;跟python中文件操作方法的a模式也是类似的。
list1=[1,2,3]
list1.append(4)
list1.append([5])
list1.append('6')
list1
[1, 2, 3, 4, [5], '6']
1.2 clear 清空
help(list.clear)
Help on method_descriptor:
clear(self, /)
Remove all items from list.
释义:在一个列表中移除所有元素
list1=[1,2,3]
list1.clear()
list1
[]
1.3 copy 复制
help(list.copy)
Help on method_descriptor:
copy(self, /)
Return a shallow copy of the list.
返回一个列表的shallow拷贝,什么是shallow拷贝呢,有空可以说下。
list1=[1,2,3]
list2=list1.copy()
list2
[1, 2, 3]
1.4 count 计数
help(list.count)
Help on method_descriptor:
count(self, value, /)
Return number of occurrences of value.
返回出现的值的次数
list1=[1,2,3,1,2,1]
print(list1.count(1))
print(list1.count(2))
print(list1.count(3))
print(list1.count(4)) #不存在的数据也是不会报错的
3
2
1
0
1.5 extend 扩展
help(list.extend)
Help on method_descriptor:
extend(self, iterable, /)
Extend list by appending elements from the iterable.
通过iterable(可迭代的)对象来扩展一个列表,追加的是(iterable中的)元素。
list1=[1,2,3]
list1.extend([1])
list1.extend(('a'))
list1.extend('hello')
print(list1)
list1.extend(1)
[1, 2, 3, 1, 'a', 'h', 'e', 'l', 'l', 'o']
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-23-e92d89bce64d> in <module>
4 list1.extend('hello')
5 print(list1)
----> 6 list1.extend(1)
TypeError: 'int' object is not iterable
怎么看是否是iterable
from collections import Iterable
#Iterable
print(isinstance('123',Iterable)) #字符串可迭代
print(isinstance(123,Iterable)) #数字不可迭代
print(isinstance([1,2,3],Iterable)) #列表可迭代
print(isinstance((1,2,3),Iterable)) #元组可迭代
print(isinstance({'A':1,"B":2},Iterable)) #字典可迭代
print(isinstance({1,2,3},Iterable)) #集合可迭代
True
False
True
True
True
True
1.6 index 索引
help(list.index)
Help on method_descriptor:
index(self, value, start=0, stop=9223372036854775807, /)
Return first index of value.
Raises ValueError if the value is not present.
- 返回第一个匹配值的索引值
- 如果值不存在就抛出异常
- 默认的起始索引是0,结束索引是9223372036854775807(2的63次方-1)
list1=[1,2,3,1,4,5,6,2]
print(list1.index(3)) #3就一个,位置是2(因为列表第一个元素的索引是0)
print(list1.index(1)) #1有2个,那么给出的第一个1出现的索引,0
print(list1.index(2,5)) #2,5的意思是从索引位置5开始找2,所以第一个2被跳过了
print(list1.index(7)) #7不存在就抛出异常
2
0
7
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-30-a7a18664322b> in <module>
3 print(list1.index(1))
4 print(list1.index(2,5))
----> 5 print(list1.index(7))
ValueError: 7 is not in list
1.7 insert 插入
help(list.insert)
Help on method_descriptor:
insert(self, index, object, /)
Insert object before index.
- 在索引位置之前插入对象,其实就是将列表中指定索引位置的元素变成你要的,原来的往后挪一个位置,就是插队。
list1=['a','b','c']
list1.insert(2,'hello') #list1[2]就变成hello
list1.insert(100,'world') #没有100索引,默认就在尾部插入,不会抛出index out of range
print(list1)
['a', 'b', 'hello', 'c', 'world']
1.8 pop 弹出元素
help(list.pop)
Help on method_descriptor:
pop(self, index=-1, /)
Remove and return item at index (default last).
Raises IndexError if list is empty or index is out of range.
- 默认index是-1,即列表的尾部
- 移除指定索引位置的元素,并返回
- 如果列表为空就抛出异常,或者index超出范围
list1=[1,2,3]
list1.pop(1) #弹出索引位置1的元素,此处是2
print(list1)
list1.pop()
print(list1)
#因为要测试两种异常就捕获下
try:
list2=['a','b','c']
list2.pop(100)
except IndexError:
print('here is an IndexError')
try:
list3=[]
list3.pop()
except IndexError:
print('here is an IndexError')
[1, 3]
[1]
here is an IndexError
here is an IndexError
1.9 remove
help(list.remove)
Help on method_descriptor:
remove(self, value, /)
Remove first occurrence of value.
Raises ValueError if the value is not present.
- 移除第一个发生的值
- 如果值不存在就抛出异常ValueError
list1=['a','b','c','a']
list1.remove('a') #移除第一个a
print(list1)
list1.remove('d')
['b', 'c', 'a']
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-47-3feab02c084d> in <module>
2 list1.remove('a')
3 print(list1)
----> 4 list1.remove('d')
ValueError: list.remove(x): x not in list
1.10 reverse
help(list.reverse)
Help on method_descriptor:
reverse(self, /)
Reverse *IN PLACE*.
反转列表,不排序
list1=[9,5,2,7]
list1.reverse()
print(list1)
[7, 2, 5, 9]
1.11 sort 排序
help(list.sort)
Help on method_descriptor:
sort(self, /, *, key=None, reverse=False)
Stable sort *IN PLACE*.
排序列表,默认是升序
list1=[1,3,5,7,2,4,6,8]
list1.sort()
print(list1)
list1.sort(reverse=True) #降序
print(list1)
[1, 2, 3, 4, 5, 6, 7, 8]
[8, 7, 6, 5, 4, 3, 2, 1]
总结
十一个方法
- append 追加
- clear 清空
- copy 复制
- count 计数
- extend 扩展
- index 索引
- insert 插入
- pop 弹出
- remove 移除
- reverse 反转
- sort 排序
查:index、count
删:remove、pop、clear
改:reverse、sort
增:append、extend、insert
其他:copy
元素操作:append、count、index、remove、extend、insert
索引操作:insert、pop
列表操作:reverse、sort、clear、count