a.sort() 和 sorted(a)的区别

关系描述:

两者都可以排序,但a.sort()主要是在原有的列表上进行排序而sorted(a)的方法则是排序后返回一个新列表

上代码--

错误代码:

以年会抽奖为例,抽取30名对其进行排序输出


import  random

def sen():
    list_n = []
    for i in range(1,301) :
        n = i
        list_n .append(n)
    return list_n
#抽奖
def choise():
    #定义一个空列表存放获奖人的编号
    num_list = []
    #调用函数sen()接收1-300的数字
    nums_list = sen()
    #三等奖
    num_list = random.sample(nums_list, 30)
    for word in num_list :
        nums_list.remove(word)  #方便后续去重
    num_list = num_list.sort(reverse=False)
    # 输出30个人的编号
    print("恭喜以下员工获三等奖", num_list)

choise()

错误输出:

 

问题描述:

从上方输出图片中可以看出来最后输出的值为None,这是因为 列表.sort() 方法只在原有的列表进行修改最后返回None,

那么如何解决这一个问题呢? 

方法如下:

第一种:将上述代码中的num_list = num_list.sort(reverse=False)改为

               num_list.sort(reverse=False)

               print(num_list)

              

第二种:将上述代码num_list = num_list.sort(reverse=False)删除,直接使用输出函数

              print(sorted(num_list)) 或者  num = sorted(num_list)  print(num)

             

最后附上修改后的正确代码:

import  random

def sen():
    list_n = []
    for i in range(1,301) :
        n = i
        list_n .append(n)
    return list_n
#抽奖
def choise():
    #定义一个空列表存放获奖人的编号
    num_list = []
    #调用函数sen()接收1-300的数字
    nums_list = sen()
    #三等奖
    num_list = random.sample(nums_list, 30)
    for word in num_list :
        nums_list.remove(word)  #方便后续去重
    num_list.sort()
    # 输出30个人的编号
    print("恭喜以下员工获三等奖", num_list)
choise()

输出结果:

好啦,学废了吗

       

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值