一、函数list 

  list[列表]

作用:可将字符串转换为列表

>>> s = 'abcde'
>>> l = list(s)
>>> l
['a', 'b', 'c', 'd', 'e']
>>> ''.join(l)#join无法转换数字列表
'abcde'
>>> '+'.join(l)
'a+b+c+d+e'
>>> 

类似的函数有split

>>> 字符串 = '10203040 '
>>> 字符串.split('0')
['1', '2', '3', '4', ' ']

二、基本的列表操作

1、修改列表:给元素赋值  

  列表[索引] = 值

#不能给不存在的元素赋值,如果需要这样做,则需要提前初始化列表

>>> l = [1,2,3,4]
>>> l[0] = 2
>>> l
[2, 2, 3, 4]
>>> l[4] = 1
Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
    l[4] = 1
IndexError: list assignment index out of range
>>> l = [None]*10
>>> l[9] = 1
>>> l
[None, None, None, None, None, None, None, None, None, 1]

2、删除元素 

  del 列表[索引]

>>> l = [1,2,3,4]
>>> del l[0]
>>> l
[2, 3, 4]

3、给切片赋值 

  列表[索引1:索引2:步长] = 值

(1)可替换为长度不同的序列

 

>>> l = [1,2,3,4,5]
>>> l[1:3] = '拿来吧你'
>>> l
[1, '', '', '', '', 4, 5]
>>> l = [1,2,3,4,5]
>>> l[1:3] = ['拿来吧你']
>>> l
[1, '拿来吧你', 4, 5]

 

(2)可插入新元素,可以是多个元素

 

>>> l = [0,1,2,3,4,5]
>>> l[1:1] = ['在索引1前插入']+list('abc')
>>> l
[0, '在索引1前插入', 'a', 'b', 'c', 1, 2, 3, 4, 5]
>>> l = [0,1,2,3,4,5]
>>> l[5:5] = ['在索引5前插入']
>>> l
[0, 1, 2, 3, 4, '在索引5前插入', 5]
>>> 

 

(3)可删除指定范围元素

 

>>> l = [1,2,3,4,5]
>>> l[1:3] = []
>>> l
[1, 4, 5]

 

三、列表方法

  对象.方法(参数)

1、append

  列表.append(值)

  作用:在列表末尾插入元素,单个元素

#append和其他类似方法一致,会直接修改旧列表,不会返回新列表

>>> l = [1,2,3]
>>> l.append(4)
>>> l
[1, 2, 3, 4]

2、clear

  列表.clear()

  作用:清空列表

>>> l = [1,2,3]
>>> l.clear()
>>> l
[]

3、copy

  列表2 = 列表1.copy()

  作用:复制列表。常规复制只是将另一个名称关联到同一列表,要让a和b指向不同的列表

#常规复制,指向同一列表
>>> lst_1 = [1,2,3]
>>> lst_2 = lst_1
>>> lst_2.append(4)
>>> lst_1
[1, 2, 3, 4]

#copy复制,指向不同列表,一个是原件,一个是副本
>>> lst_1 = [1,2,3]
>>> lst_2 = lst_1.copy()
>>> lst_2.append(4)
>>> lst_1
[1, 2, 3]

4、count

  列表.count(元素)

  作用:计算指定元素在列表中出现了多少次

>>> lst = [1,2,3,[1,2,[1,2,3]],3,[1,2]]
>>> lst.count(1)
1
>>> lst.count([1,2])
1

5、extend

  列表.extend(扩展列表)

  作用:插入看多个值到列表队尾

>>> lst = [1,2,3]
>>> ex_lst = [4,5,6,7]
>>> lst.extend(ex_lst)
>>> lst
[1, 2, 3, 4, 5, 6, 7]

6、index

  列表.index(元素)

  作用:查找指定元素第一次出现的索引

>>> lst = ['who','who','are','you']
>>> lst.index('who')
0

7、insert

  列表.insert(索引,值)

  作用:将对象插入指定位置,单个元素

>>> lst = [0,1,2,3,4]
>>> lst.insert(0,'索引0前插入')
>>> lst
['索引0前插入', 0, 1, 2, 3, 4]
>>> lst.insert(2,list('索引2前插入'))
>>> lst
['索引0前插入', 0, ['', '', '2', '', '', ''], 1, 2, 3, 4]

8、pop

  列表.pop(索引选填,默认为左后一个元素)

  作用:从列表中删除一个元素(默认为最后一个元素),并返回该元素

>>> lst = [1,2,3,4,5]
>>> m = lst.pop()
>>> m
5
>>> lst
[1, 2, 3, 4]
>>> lst.pop(2)
3
>>> lst
[1, 2, 4]

  用pop可实现一种常见的数据结构——栈(stack)。后进先出(LIFO)

9、remove

  列表.remove(值)

  作用:删除第一个匹配指定值的元素,不会和pop一样返回删除的值

>>> x = [1,2,3,1,2,3]
>>> x.remove(2)
>>> x
[1, 3, 1, 2, 3]

10、reverse

  列表.reverse()

  作用:反序排列列表元素,修改列表,无返回值

>>> lst = [1,2,3,4,5]
>>> lst.reverse()
>>> lst
[5, 4, 3, 2, 1]

11、sort

  列表.sort()

  作用:使元素按序排列,修改列表,无返回值

>>> lst = [2,45,23,11,3,5,234]
>>> lst.sort()
>>> lst
[2, 3, 5, 11, 23, 45, 234]

  如果想保留排序前的序列,可以先copy一个副本,再sort

  或者使用函数sorted,同样可以使元素按序排列,但会返回一个新的列表,且旧列表不受影响

>>> lst = [2,45,23,11,3,5,234]
>>> lst1 = sorted(lst)
>>> lst
[2, 45, 23, 11, 3, 5, 234]
>>> lst1
[2, 3, 5, 11, 23, 45, 234]

  sorted函数可以应用于任意一个序列,但总是返回一个列表

>>> sorted('asdwfrtasdccd')
['a', 'a', 'c', 'c', 'd', 'd', 'd', 'f', 'r', 's', 's', 't', 'w']

  若要将序列按元素倒序排列,可以先用sort或sorted,再用reverse

12、高级排序

  方法sort接受两个可选参数:key和reverse。

  (1)key,排序条件

  (2)reverse,正序还是倒序(False/True)

>>> lst = ['dasd','qwdqwqwd','eee','1']
>>> lst.sort(key=len)
>>> lst
['1', 'eee', 'dasd', 'qwdqwqwd']
>>> lst = ['dasd','qwdqwqwd','eee','1']
>>> lst.sort(key=len,reverse=True)
>>> lst
['qwdqwqwd', 'dasd', 'eee', '1']

 

posted on 2021-07-30 17:48  12345zjl  阅读(99)  评论(0编辑  收藏  举报