list(列表)是一个可变序列。
1. 列表的方法及注释
列表的方法 | 注释 |
---|---|
append(x) | 将元素追加到列表的末尾。 |
extend(L) | 用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
insert(index, x) | 用于将指定对象插入列表的指定位置 |
remove(x) | 在列表lst中删除首次出现的指定元素,该元素之后的所有元素前移一个位置 |
pop([index]) | 删除并返回列表中下标为index(默认为-1)的元素 |
clear() | 删除列表lst中所有元素,但保留列表对象 |
index(x[,start,end]) | 返回列表中第一个值为x的元素的索引,若不存在值为x的元素则抛出异常 |
count(x) | 返回指定元素x在列表lst中的出现次数 |
reverse() | 对列表lst所有元素进行逆序 |
sort([key=None, reverse=False]) | 对列表中的元素进行排序,key用来指定排序依据,reverse决定升序(False),还是降序(True) |
copy() | 返回列表lst的浅复制 |
说明:
1. pop是唯一既修改列表又返回一个非 None值的列表方法
2. sort的高级排序
#按字母数量倒序
>>> lisA = ['xu','sun','jing','zhong']
>>> lisA.sort(key = lambda x:len(x),reverse = True)
>>> lisA
['zhong', 'jing', 'sun', 'xu']
2. 其他修改列表的办法
1. del语法:
>>> lisA
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> del lisA[0:3]
>>> lisA
[3, 4, 5, 6, 7, 8, 9]
2. sorted函数
sorted函数可用于任何可迭代对象,返回值是列表。
>>> lisB = [1,3,2,5,4,0]
>>> lisC = sorted(lisB)
>>> lisC
[0, 1, 2, 3, 4, 5]
2. 列表推导式
列表推导式是一个非常有用和灵活的工具,可以用来动态的创建列表,如:
#结果为[1, 3, 5, 7, 9]
>>> list1 = [i for i in range(10) if i%2]
3. 列表的切片
切片适用于列表、元组、字符串、range对象等类型,但作用于列表时功能最强大。
第一个数字表示切片开始位置(默认为0)。
第二个数字表示切片截止(但不包含)位置(默认为列表长度)。
第三个数字表示切片的步长(默认为1),当步长省略时可以顺便省略最后一个冒号。步长为负数时代表从右往左读取。
切片操作不会因为下标越界而抛出异常,而是简单地在列表尾部截断或者返回一个空列表,代码具有更强的健壮性。
4. 列表转换
4.1 字符串转列表:
1. 用eval函数转换
>>> str1 = "['a','b','c','d']"
>>> list1 = eval(str1)
>>> print(list1)
['a', 'b', 'c', 'd']
2. 将字符串每个字符转成列表中的值
>>> str1 = "I love u"
>>> list1 = list(str1)
>>> print(list1)
['I', ' ', 'l', 'o', 'v', 'e', ' ', 'u']
3. 将字符串按指定<分隔符>分割成列表
>>> str1 = "I love u"
>>> list1 = str1.split()
>>> print(list1)
['I', 'love', 'u']
4.2 列表转字符串
- 将列表中的内容拼接成字符串
>>> list1 = ['I', 'love', 'u']
>>> ' '.join(list1)
I love u
- 将列表中的值转成字符串
>>> list1 = [1,2,3,4]
>>> list2 = [str(i) for i in list1]
>>> print(list2)
['1', '2', '3', '4']