목록을 만드는 데 문제가 있습니다. 기수 정렬을위한 논리 부분을 완료했습니다.기수에 대한 도움이 필요합니다.
import math
a = [4, 15, 7, 3, 6, 22, 45, 82]
a1 = [[] for _ in xrange(len(a))]
a2 = [[] for _ in xrange(len(a))]
a3 = [[] for _ in xrange(len(a))]
a4 = [[] for _ in xrange(len(a))]
b = [[] for _ in xrange(10)]
b2 = [[] for _ in xrange(10)]
d=len(str(max(a)))
[str(item).zfill(d) for item in a]
print a
코드의이 부분은 모든 숫자의 길이가 더 구비 맥스 디지트의 상관
가 a = [ 04 , 15 , 07 , 03 , 06 , 22 , 45 , 82 ]
주지 않는다과 동일한 수 있도록 숫자 전에 제로를 추가 할 것이다 : 여기 는 코드
a1 = [[4], [5], [7], [3], [6], [2], [5], [2]]
다음과 같이
for x in xrange(0,len(a)) :
a1[x].append(a[x]%10)
print a1
print '\n'
이 각 번호의 마지막 자리를 저장합니다
다음 부분에서 bucket no가 no. 그 다음에 no. 해당 자릿수가 저장됩니다.
[]
[]
[22, 82]
[3]
[4]
[15, 45]
[6]
[7]
이 부분은 데리러 더합니다 다음 없기 때문에
i=0
for x in xrange(0,len(a)) :
for u in range(0,len(a)) :
if a1[u]==[i] :
b[x].append(a[u])
i=i+1
for u in range(0,len(a)) :
print b[u]
출력 될 것입니다. 양동이에서 시작하는 양동이에서. 버킷 번호는 0입니다. 10
for k in range(0,len(a)) :
l=len(b[k])
for t in range(0,l) :
a2[k]=b[k][t]
print a2[k]
A2는
22
82
3
4
15
45
6
7
입니다하지만 난 this-
print a2[0]
처럼 인쇄 할 때 나는를 저장하지 않으
[]
제공 해당 a2 목록의 빈 값 방법 그것을 피하시오?
"버킷이 비어 있으면 루프를 계속 수행하지 않아도됩니다"라는 조건을 사용해야한다는 것을 알고 있습니다. 이 코드를 작성하는 방법을 모르겠습니다.
나는 내가
if len(b[k][t])==0 :
continue
else :
a2[k]=b[k][t]
print a2[k]
를 추가 할 필요가 생각하지만
Traceback (most recent call last):
File "prog.py", line 39, in <module>
TypeError: object of type 'int' has no len()
39 번 내용을 기재 할 수 있습니까? – Benjamin
line 39 : len (b [k] [t]) == 0 : –