我有一种算法可以生成一个包含未知数量子列表的列表,每个子列表都有未知数量的字符串元素和一个浮点数。我需要根据这个浮动在主列表中排序这些子列表。此外,不会重新排列子列表中的字符串顺序。
我目前通过一大块代码(链接如下)运行它,它使用字典对其进行排序。如您所见,我收到了 KeyErrors。我以前没有使用过 dicts,所以我不知道从哪里开始。如果有更好的方法,那么我也对此持开放态度。http://ideone.com/wr8UA
花车不是连续的,我不确定使用我拥有的方法这有多大的意义。意思是,偶尔会跳过数字(在 Ideone 的示例列表中,它们是 1.0、2.0、4.0;跳过 3.0 以在运行时模拟这种情况)。它们也不在子列表中的任何特定位置,因此所有 for 循环都在搜索它们。
希望这很清楚,我之前尝试过问过它并得到了反对意见,而不是关于让人们感到困惑的问题。让我知道是否有问题。谢谢大家!
编辑:根据要求在正文中编写代码:
listed = [ ["1 NWZ", "1 RWZ", "2 NWZ", "2 RWZ", "1E HZ", "1W HZ", "1-2EHZ", 2.0, "2W HZ"],
["1 NWZ", "1W HZ", "3E FZ", "SNOK", "POK", 3.0, "1-2EHZ", "2E AK", "2W HZ"],
["1 BW", "1AW AS", "3E FZ", "1BWAK", "POK", "TESTK", "1-2EHZ", "2E AK", 1.0]]
dictionary={}
for sub_list in listed:
for value in sub_list:
if isinstance(value,float):
dictionary[str(value)]=sub_list
else:
pass
ordered_list=[]
for i in range(1,len(listed)+1):
if dictionary[str(i)]:
ordered_list.append(dictionary[str(i)])
for sub_list in ordered_list:
print sub_list