1、介绍
builtins.py文件中定义了list类,用于处理python中列表数据。
list也是python的基本数据类型之一。
- 列表是单列的元素集合,用[]包围,内部元素之间用,分隔
- 列表的元素可以是任意类型,且某一列表中可以同时包含不同类型
- 列表支持元素的增删改
- 列表支持数值索引
- 元素不会进行默认排序,可以重复。
2、类
class list(object):
def __init__(self, seq=()):
pass
3、字面量初始化
a= ["12","abc","1", "23","17"]
4、类初始化
- 可以传递一个参数,为可迭代对象,将其初始化为列表。不是可迭代对象会报错
print(list()) # []
print(list("abcd")) # ['a', 'b', 'c', 'd']
print(list((12,22,"abc"))) #[12, 22, 'abc']
5、属性
6、方法
(1)sort
- 对列表进行排序,不返回
- 要求元素必须都是str或者都是int等同一类型,不同类型之间不能排序,会报错
- 默认是进行升序排列
c = ["12","abc","1", "23","17"]
c.sort()
print(c)
(2)count
- 匹配元素的个数,参数是任意类型,返回int类型
- 当没有匹配时,返回0
(3)append
- 作用是将参数作为一个元素添加到列表末尾,无返回
- 参数可以是任意类型
(4)clear
- 作用是将列表的元素全部清除,无返回
- 清除只是将元素与列表对象的关系的解除,如果元素是变量,那么仍然可以进行访问
(5)index
- 作用是匹配列表中的值,返回第一处参数所在的索引,返回类型为int
- 如果没有匹配项,会报错
(6)remove
- 作用是移除列表中第一个匹配项,无返回
- 参数可以是任意类型
(7)copy
- 作用是克隆,返回克隆后的对象,返回类型list
- 注意,这是浅层克隆,即直接将原列表中元素的地址复制写入新列表中
z1 = [[12, 22], [32, "abc"]]
z2 = a.copy()
z2[0][1] = 55
print(z1) # [[12, 55], [32, 'abc']]
print(z2) # [[12, 55], [32, 'abc']]
(8)insert
insert(__index, __object)
- 作用是插入新值作为元素,无返回
- __index,int类型,插入索引。如果其小于等于0,表示在列表索引为0插入。如果其大于等于长度,表示在末尾插入。
- __object,任意类型,作为新的元素
(9)pop
pop(__index)
- 移除指定的索引,并返回移除元素
- __index参数,int类型,表示待移除索引,可以是0和正数,也可以是负数索引。但必须是有效范围,超出会报错
(10)reverse
- 顺序反转,将元素倒序排列,无返回
(11)extend
extend(__iterable)
- 作用是指定一个可迭代对象,将该参数中的元素追加到当前列表中
7、关于移除
如果想要将list中所有值为x的元素移除
(1)方法一
- 移除失败
a = [15,15,20,30,15,11]
for item in a:
if item==15:
a.remove(item)
print(a) # [20, 30, 15, 11]
(2)方法二
- 移除失败
a = [15,15,20,30,15,11]
for i in range(len(a)):
print(i)
if a[i]==15:
a.remove(15)
print(a) # 超出范围报错,也就是说len(a)只在range函数中执行一回
(3)方法三
- 可行
a = [15,15,20,30,15,11]
i=0
while i < len(a):
print(i)
if a[i]==15:
del a[i]
# continue很重要,匹配移除当前索引的元素,然后再判断当前索引
continue
i = i + 1
print(a)# [20, 30, 11]
(4)方法四
- 最简单的写法
a = [15,15,20,30,15,11]
for i in range(a.count(15)):
a.remove(15)
print(a) # [20, 30, 11]
标签:15,元素,list,列表,移除,print,python3
From: https://www.cnblogs.com/wd404/p/17324861.html