Python 列表 全面讲解秒懂列表的用法

一、列表的索引和截取

在上一篇文章 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']

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值