一、列表的索引和截取
在上一篇文章 Python基本数据类型 第四点讲到了 列表的索引和截取,这里不过多阐述。
这里拓展一下使用负数索引:
list=[1,2,3,4,5]
print(list[1:-2])
输出结果为:
二、更新列表
可以对列表的数据项进行修改和更新
list=['zhangsan','lisi','wangmazi']
print(list)
list[1]='liming'
print(list)
list.append('zhaosi')
print(list)
输出结果为:
三、删除列表元素
list=[1,2,3,4,5]
del list[1]
print(list)
输出结果为:
四、嵌套列表
x=['a','b','c']
y=[1,2,3]
z=[x,y]
print(z)
print(z[0])
print(z[0][1])
输出结果为:
五、列表比较
列表比较需要引入 operator 模块的 eq 方法:
import operator
a=[1,2]
b=[2,3]
c=[2,3]
print(operator.eq(a,b))
print(operator.eq(b,c))
输出结果为:
六、Python列表函数
函数:
- len(list)—列表元素个数
- max(list)—返回列表元素最大值
- min(list)—返回列表元素最小值
方法:
- list.append(obj)—在列表末尾添加新的对象,输入参数为对象
list=['fancy','666']
list.append('123')
list.append(['hello','456'])
list.append({'name':18,'sex':'man'})
print(list)
-->['fancy', '666', '123', ['hello', '456'], {'name': 18, 'sex': 'man'}]
- list.extend(seq)—在列表中追加另一个序列中的多个值,输入参数为元素队列
list=['fancy','666']
list.extend('123')
list.extend(['hello','456'])
list.extend({'name':18,'sex':'man'})
print(list)
-->['fancy', '666', '1', '2', '3', 'hello', '456', 'name', 'sex']
- list.count(obj)—统计某个元素在列表中出现的次数
list=[999,'fancy',123,'fancy',123,'fancy']
print("fancy 元素个数为:",list.count('fancy'))
print("123 元素个数为:",list.count(123))
-->
fancy 元素个数为: 3
123 元素个数为: 2
- list.index(obj)—从列表中找出某个值第一个匹配项的索引位置
list=['zhangsan','lisi','wangmazi']
print('zhangsan 索引值为',list.index('zhangsan'))
print('wangmazi 索引值为',list.index('wangmazi'))
-->
zhangsan 索引值为 0
wangmazi 索引值为 2
- list.insert(index, obj)—将对象插入列表
index–对象obj需要插入的索引位置
obj–要插入列表的对象
list=['tom','jack','rose']
list.insert(1,'jam')
print("列表插入的元素后:",list)
-->列表插入的元素后: ['tom', 'jam', 'jack', 'rose']
- list.pop([index=-1])—移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
index要移除列表元素的索引值,不超过列表的总长度,默认为 -1
该函数返回值从列表中移除的元素对象
list=['zhangsan','lisi','wangmazi']
delele=list.pop()
print("删除的元素为:",delele)
print("新的列表为:",list)
-->
删除的元素为: wangmazi
新的列表为: ['zhangsan', 'lisi']
- list.remove(obj)—移除列表中某个值的第一个匹配项
list=['zhangsan','lisi','wangmazi']
list.remove('lisi')
print("新的列表为: ",list)
-->新的列表为: ['zhangsan', 'wangmazi']
- list.reverse()—反向列表中元素(逆序列表)
list=['zhangsan','lisi',999,'hello']
list.reverse()
print("新的列表为:",list)
-->新的列表为: ['hello', 999, 'lisi', 'zhangsan']
- list.sort( key=None, reverse=False)—对原列表进行排序
list.sort(key=None,reverse=False)
key—主要是进行比较的元素,只有一个参数,具体的函数的参数就是取自可迭代的对象中,指定可迭代对象的一个元素进行排序
reverse—如果reverse=True为降序,reverse=False升序(默认)
数值排序
list=[1,2,3,4,5]
list.sort(reverse=False)
print(list)
-->[1, 2, 3, 4, 5]
list=[1,2,3,4,5]
list.sort(reverse=True)
print(list)
-->[5, 4, 3, 2, 1]
list=[1,2,3,4,5]
list.sort() #默认升序
print(list)
-->[1, 2, 3, 4, 5]
字符串排序
list=['pycharm','vscode','as','boy']
list.sort()
print(list)
-->['as', 'boy', 'pycharm', 'vscode']
list=['pycharm','vscode','as','boy']
list.sort(reverse=True)
print(list)
-->['vscode', 'pycharm', 'boy', 'as']
用列表中的第一个元素来排序
#升序
def keyrank(elem):
return elem[0]
list=[(4,1),(3,2),(2,3),(1,4)]
list.sort(key=keyrank,reverse=False)
print(list)
-->[(1, 4), (2, 3), (3, 2), (4, 1)]
#降序
def keyrank(elem):
return elem[0]
list=[(4,1),(3,2),(2,3),(1,4)]
list.sort(key=keyrank,reverse=True)
print(list)
-->[(4, 1), (3, 2), (2, 3), (1, 4)]
用列表中的第二个元素来排序
#升序
def keyrank(elem):
return elem[1]
list=[(4,1),(3,2),(2,3),(1,4)]
list.sort(key=keyrank,reverse=False)
print(list)
-->[(4, 1), (3, 2), (2, 3), (1, 4)]
#降序
def keyrank(elem):
return elem[1]
list=[(4,1),(3,2),(2,3),(1,4)]
list.sort(key=keyrank,reverse=True)
print(list)
-->[(1, 4), (2, 3), (3, 2), (4, 1)]
sort 方法不适合 int 和 str 类型的比较。
- list.clear()—清空列表
list=['zhangsan','lisi','wangmazi']
list.clear()
print("新的列表:",list)
-->新的列表: []
- list.copy()—复制列表
list=['zhangsan','lisi','wangmazi']
list2=list.copy()
print("list2:",list2)
-->list2: ['zhangsan', 'lisi', 'wangmazi']