Python代码?

2024-05-14

1. Python代码?

利用Python制作的表白代码,文字可以随意修改

Python代码?

2. 大佬们,可以详细讲解一下python这三句代码的意思吗?

我用的python 3.7,al.clear那一句需要修正为al.clear(),不然无法清空列表。
第一、二句打勾的是创建列表。第一句找出基数中最长的位数,第二句是创建10个列表,算法中称之为“桶”。第三句根据基数某一位的值而把该基数放入相应的桶中,[-1*i]是逆着取值,如[-2]是逆着取倒数第二位的值:
'123'[-2]
结果是'2'
'183'[-2]
结果是'8'
整个算法,外循环从基数位数1一直循环到最大位数。第一轮循环比较最低位,第2轮循环比较次低位,如此比较到最高位。内循环是把参与本轮循环的基数放入相应的桶里。那些位数少于本轮位数要求的基数,将放入0桶。所以0桶存的是已经排好序的基数,越先入桶的说明最小。如:
al = [1, 5, 4, 3, 100, 898, 67, 45, 65]
第一轮比较个位,1、3、4、5分别位于1、3、4、5桶。其余的依次类推入桶。本轮结束后,又把所有基数依桶的顺序收回原列表,以下相同。但很明显,仅看个位数的话,显然已经排好了序。
第二轮比较十位,1、3、4、5小于位数2的要求,直接依次进入0桶,它们已经在上轮排好了序。100入0桶,898入9桶、67入6桶、45入4桶、65入6桶(注意,虽然65和67同处于6桶,但由于65在第一轮处5桶、67处7桶,所以65先被循环到,也因而先于67在第二轮入6桶。显然45、65、67在第二轮排好了序)。
第三轮比较千位,45、65、67入0桶,排在1、3、4、5之后。100入1桶、898入8桶(100、898也排好了序)。至此排序结束。

自己去看下百科,那里的实例讲得更清楚
最新文章
热门文章
推荐阅读