资讯专栏INFORMATION COLUMN

python_bomb----排序函数

darcrand / 632人阅读

摘要:和列表里提供了方法,其他数据类型不能用可以对任何可迭代对象排序方法支持原地排序,变量排序后,变量本身改变方法返回一个新的列表,并不改变原变量的内容不改变原有列表次序默认和方法由小到大排序,时,从大到小排序字典排序商品名称,数

li.sort()和sorted()

列表里提供了sort方法,其他数据类型不能用
sorted可以对任何可迭代对象排序

sort方法支持原地排序,变量排序后,变量本身改变
sorted方法返回一个新的列表,并不改变原变量的内容

li = [1,4,76,23,32]
print(li.sort())
-->None
li
-->[1, 4, 23, 32, 76]
li = [1,4,76,23,32]
print(sorted(li))        #不改变原有列表次序
-->[1, 4, 23, 32, 76]
li    
-->[1, 4, 76, 23, 32]

默认li.sort()和sorted()方法由小到大排序,reverse=True时,从大到小排序

lee = [1,3,6765,454,234,3434,3245]
lee.sort(reverse=True)
print(lee)


[6765, 3434, 3245, 454, 234, 3, 1]
lee = [1,3,6765,454,234,3434,3245]
print(sorted(lee,reverse=True))


[6765, 3434, 3245, 454, 234, 3, 1]
字典排序
store = [
    #商品名称,数量,价格
    ("apple",40,2),
    ("banana",17,1),
    ("watermelon",12,5),
    ("starwberry",17,10)
]
print(sorted(store))    #默认按关键值排序

#按照商品数量排序
#key = 代表排序的关键字
def sorten_by_count(x):
    return x[1]

print(sorted(store,key=sorten_by_count))

#先按照商品数量由小到大进行排序,如果商品数量一致,则按照商品价格由小到大进行排序

def sorten_by_count_price(x):
    return x[1],x[2]    #-x[2]商品价格从大到小
print(sorted(store,key=sorten_by_count_price))



[("apple", 40, 2), ("banana", 17, 1), ("starwberry", 17, 10), ("watermelon", 12, 5)]
[("watermelon", 12, 5), ("banana", 17, 1), ("starwberry", 17, 10), ("apple", 40, 2)]
[("watermelon", 12, 5), ("banana", 17, 1), ("starwberry", 17, 10), ("apple", 40, 2)]

按字符串长度排序
l = ["hello","apple","cindy","sheenstar"]
print(max(l,key=lambda x: len(x)))

sheenstar
奇偶排序
# 有一个整数列表(10个元素),要求调整元素顺序
#   把所有奇数放在前面,偶数放在后面
import random

li = [random.randint(1, 10) for i in range(10)]
print(li)

print(sorted(li, key=lambda x: 1 if x % 2 == 0 else 0))
print(sorted(li,key=lambda x:x%2==0))


[7, 10, 7, 9, 8, 2, 9, 6, 3, 10]
[7, 7, 9, 9, 3, 10, 8, 2, 6, 10]
[7, 7, 9, 9, 3, 10, 8, 2, 6, 10]

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/42248.html

相关文章

  • python_bomb----高阶函数

    摘要:高阶函数实参是一个函数名函数的返回值是一个函数传递的参数包含函数名。内置高阶函数函数函数接收两个参数一个是函数一个是序列将传入的函数依次作用到序列的每个元素并把结果作为新的返回。 高阶函数 实参是一个函数名 函数的返回值是一个函数 print(abs(-10)) f = abs print(f(-10)) #传递的参数包含函数名。 def myfun(x,y,fun): ...

    Pocher 评论0 收藏0
  • python_bomb----函数高级特性(生成器)

    迭代 可以通过 for 循环来遍历 list 或 tuple,这种遍历我们称为迭代(Iteration)只要是可迭代对象,都可以迭代,比如字典默认情况下,字典迭代的是key值如何让判断一个类型是否可迭代 from collections import Iterable #导入collections模块的Iterable类型判断方法 print(isinstance({abc:1},Itera...

    JouyPub 评论0 收藏0
  • python_bomb----函数

    摘要:函数的定义范例总结无参函数名快注释函数体定义函数,并不会执行函数体里面的内容调用函数的过程函数里面嵌套函数调用外层函数时,内层函数不会执行变量参数定义函数时的变量,称做形参,可以任意命名真实的数据信息,调用函数时传递的参数,称为实参是形参是 函数的定义 范例 def print(self, *args, sep= , end=n, file=None): 总结 无参 def 函数名...

    oogh 评论0 收藏0
  • python_bomb----包

    摘要:什么是包为了组织好模块,会将多个模块分为包。处理包也是相当方便的。简单来说,包就是文件夹,但该文件夹下必须存在文件。最简单的情况下,只需要一个空的文件即可。当然它也可以执行包的初始化代码包底下也能包含包,这和文件夹一样,还是比较好理解的。 什么是包? 为了组织好模块,会将多个模块分为包。Python 处理包也是相当方便的。简单来说,包就是文件夹,但该文件夹下必须存在 __init__....

    LeanCloud 评论0 收藏0
  • python_bomb----小白学装饰器

    什么是装饰器? 装饰器就是用来装饰函数。 想要增强原有函数的功能 但不希望修改原有函数的定义 在代码运行期间动态增加功能的方式 函数嵌套函数 调用方式:原函数 = 外层函数(原函数名)原函数 def desc(fun): def add_info(): print(happy today) fun() print(westos_linux...

    mikasa 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<