zoukankan      html  css  js  c++  java
  • Python学习记录:排序

    输入一串数字,排序输出(升序)

    1、首先使用冒泡排序,看代码

    str=input('请输入需排序的数字串(以‘,’分隔):')
    list_test=str.split(',')
    #print(list_test)
    for i in range(len(list_test)):
    list_test[i]=int(list_test[i])
    print('输入的数字串如下: ',list_test)
    def sort_test(m): #冒泡排序
    for i in range(len(m)-1):
    for j in range(len(m)-1-i):
    if m[j]>m[j+1]:
    m[j],m[j+1]=m[j+1],m[j]
    return m
    print('排序后(升序): ',sort_test(list_test))

     运行这段代码,输入字符串如#等,会出现报错‘ValueError: invalid literal for int() with base 10: '#'’

    原因是:值的类型转换错误。int(str)将符合整数的规定的字符串转换成int型的,所以这里使用int()函数来转换‘#’是不可以的

    若是输入为浮点型,可将int()函数替换为float()函数。

    2、内建函数sort或sorted

    sort()函数和sorted()函数都可排序,主要区别:sort直接改变列表的内容;sorted是不改变原列表的内容,根据一个可迭代对象建立一个新的列表

    str=input('请输入需排序的数字串(以‘,’分隔):')
    list_test=str.split(',')
    #print(list_test)
    for i in range(len(list_test)):
    list_test[i]=int(list_test[i])
    print('输入的数字串如下: ',list_test)
    t=sorted(list_test)
    print('排序后(升序): ',t)

    '''
    输出:
    请输入需排序的数字串(以‘,’分隔):8,9,5,2,1
    输入的数字串如下:
    [8, 9, 5, 2, 1]
    排序后(升序):
    [1, 2, 5, 8, 9]
    '''
  • 相关阅读:
    【初心】
    【杂题集】单题小总结
    【模板】(旧)矩阵模板
    【机智题?】【Vijos】【天平称量】
    【杂题集】【51NOD 1267】4个数和为0
    【模板】(旧)Miller Rabin 素数判定
    【杂谈】只是想想
    【杂谈】思考
    【学习?】组合和排序
    【模版】读入优化
  • 原文地址:https://www.cnblogs.com/zhuzhu1214/p/11690472.html
Copyright © 2011-2022 走看看