python列表操作

增删改

在这里插入图片描述
在这里插入图片描述

attend()用于列表的合并,将两个列表合并为一个列表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

# 创建并初始化Guests列表
guests = []
while True:
    try:
        guest = input()
        guests.append(guest)
    except:
        break
# 可以无限输入 直到主动停止运行

排序

在这里插入图片描述


在这里插入图片描述

切片

在这里插入图片描述


排序

sort与sorted的区别

List.sort(key=None,reverse=False)
  • key:排序依据,通常为函数名,如 abs、str.lower、str.upper 等;或以函数指定可迭代对象中的某个元素来进行排序。
  • reverse:排序规则,reverse=True 降序, reverse=False 升序(默认)
sorted(iterable,key=None,reverse=False)
  • iterable:排序对象,如字符串,列表,元组,字典等可迭代对象。
  • key:排序依据,通常为函数名,如 abs、str.lower、str.upper 等;或以函数指定可迭代对象中的某个元素来进行排序。
  • reverse:排序规则,reverse=True 降序, reverse=False 升序(默认)
二者的主要区别是:sort() 是应用在列表上的方法,是对已经存在的列表进行排序操作并覆盖,无返回值;sorted() 则可以对所有可迭代的对象进行排序操作,返回的是一个新的列表,而不是在原来的基础上进行的操作。

匿名函数

  • sort() 和sorted() 函数中,key=lambda x:x[] 即表示待排序对象按第多少维度进行排序。其中 x 可以为任意字母,方括号 [] 内为维数,根据需要设置
动物重量排序
ls1 = []
while True:
    element = input().split()
    if len(element) != 0:
        ls1.append(element)
    else:
        break
 
ls2 = sorted(ls1, key=lambda x:float(x[1][:-1])*1000 if x[1][-1]=='t' else float(x[1][:-2]))
print(ls2)        
  • 输入:
    北极熊 0.75t
    企鹅 35kg
    海豹 0.35t
    白鲸 1.35t
  • 输出:
    [[‘企鹅’, ‘35kg’], [‘海豚’, ‘228kg’], [‘海豹’, ‘0.35t’], [‘北极熊’, ‘0.75t’], [‘白鲸’, ‘1.35t’]]

split

当没有参数的情况下,函数默认会以空格,回车符,空格符等作为分割条件。

a="my name is zhangkang"
b="my\nname\nis\nzhangkang"
c="my\tname\tis\tzhangkang"

a=a.split()
b=b.split()
c=c.split()

print(a)
print(b)
print(c)

输出:
['my', 'name', 'is', 'zhangkang']
['my', 'name', 'is', 'zhangkang']
['my', 'name', 'is', 'zhangkang']

函数会以参数为分割条件,把字符串进行分割,得到的每个分割段作为列表的元素返回。

d="my,name,is,zhangkang"
e="my;name;is;zhangkang"
f="my-name-is-zhangkang"

d=d.split(",")
e=e.split(";")
f=f.split("-")

print(d)
print(e)
print(f)

输出:
['my', 'name', 'is', 'zhangkang']
['my', 'name', 'is', 'zhangkang']
['my', 'name', 'is', 'zhangkang']

第二个参数的意思是你想分多少次,b1,b2,b8都好理解。有人可能会问b9那个是怎么回事,最大只能分成9段呀,分8次就行了。没错,但是当分第8次的时候,最后一个分割段是”student”,再对“student”进行条件为“,”分割的时候是分不了的,也就是说还是原来的字符串不动。意思就是第二个参数值超过最大分割次数其实是没有意思的,不过程序不会报错!

a="My,name,is,zhangkang,and,I,am,a,student"
b1=a.split(",",1)
b2=a.split(",",2)
b8=a.split(",",8)
b9=a.split(",",9)

print(b1)
print(b2)
print(b8)
print(b9)

输出:
['My', 'name,is,zhangkang,and,I,am,a,student']
['My', 'name', 'is,zhangkang,and,I,am,a,student']
['My', 'name', 'is', 'zhangkang', 'and', 'I', 'am', 'a', 'student']
['My', 'name', 'is', 'zhangkang', 'and', 'I', 'am', 'a', 'student']

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值