零基础学Phyton

Python3基础入门 list(列表)方法详述

2019-06-23  本文已影响26人  410ca74fb10e

写在前面

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.
  1. 返回第一个匹配值的索引值
  2. 如果值不存在就抛出异常
  3. 默认的起始索引是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.
  1. 在索引位置之前插入对象,其实就是将列表中指定索引位置的元素变成你要的,原来的往后挪一个位置,就是插队。
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.
  1. 默认index是-1,即列表的尾部
  2. 移除指定索引位置的元素,并返回
  3. 如果列表为空就抛出异常,或者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.
  1. 移除第一个发生的值
  2. 如果值不存在就抛出异常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]

总结

十一个方法

查:index、count
删:remove、pop、clear
改:reverse、sort
增:append、extend、insert
其他:copy

元素操作:append、count、index、remove、extend、insert
索引操作:insert、pop
列表操作:reverse、sort、clear、count

上一篇 下一篇

猜你喜欢

热点阅读