我尝试对随机整数值列表进行排序,例如:aList = [2241, 350]
从每个整数的最后一个元素开始(将整数转换为字符串后)241,350,然后排序为空列表,如下所示:
zeros = [350]
ones = [2241]
twos = []
threes = []
fours = []
fives = []
sixes = []
sevens = []
eights = []
nines = []
然后返回这样一个组合列表:aList = [350, 2241]
并再次对其进行迭代以查看整数中的下一个值,并重复此过程,直到列表从最小整数到最大整数排序。你知道吗
这是我目前的代码:
zeros, ones, twos, threes, fours, fives, sixes, sevens, eights, nines = [], [], [], [], [], [], [], [], [], []
for x in range(-1, 0) :
for val in aList :
val = str(val)
if val[x] == 0 :
zeros.append(val)
elif val[x] == 1 :
ones.append(val)
elif val[x] == 2 :
twos.append(val)
elif val[x] == 3 :
threes.append(val)
elif val[x] == 4 :
fours.append(val)
elif val[x] == 5 :
fives.append(val)
elif val[x] == 6 :
sixes.append(val)
elif val[x] == 7 :
sevens.append(val)
elif val[x] == 8 :
eights.append(val)
elif val[x] == 9 :
nines.append(val)
aList = zeros + ones + twos + threes + fours + fives + sixes + sevens + eights + nines
del zeros[:], ones[:], twos[:], threes[:], fours[:], fives[:], sixes[:], sevens[:], eights[:], nines[:]
return aList
返回一个空列表。谢谢您的帮助。你知道吗
鉴于此列表:
您可以使用字典捕获相关的结束字符:
然后您可以使用列表理解将其放入列表列表中:
如果确实希望命名变量具有列表的Then值,则可以使用元组解包:
但我认为最后一步是因为你还不知道字典或列表;-)
可能会做你想做的事(尽管经过仔细检查,我相信你想要@JohnZwinck的解决方案)
你要解决的更高层次的问题是“按10进制表示的反文本对数字列表进行排序”
变成这样:
您不需要一种迭代方法,即先按最后一个数字排序,然后按最后第二个数字排序,依此类推。相反,您可以使用Python内置的
sorted()
函数一次性完成这一切,该函数接受一个序列(aList
)和一个key
函数,并返回一个根据key
函数返回的值排序的新的list
。这是所需的全部代码:为了组成我们的
key
,我们将数字转换成字符串,然后反转文本。所以第一个数字变成'1422'
。有关为什么使用[::-1]
反转的更多信息,请参见:Reverse a string in Python。你知道吗相关问题 更多 >
编程相关推荐