我正在尝试对包含字典的列表进行排序
import pap4globals
data_list_dict1=[{'a':1, 'b':4, 'c':2},
{'a':9, 'b':3,'c':2},
{'a':2,'b':10,'c':1}]
def sort1(data,rev=False):
if rev==False:
temp=0
for i in range(0,len(data_list_dict1)-1):
startIndex=len(data_list_dict1)-1
for j in range(len(data_list_dict1[i]-2,i-1,-1)):
if data_list_dict1[j]<data_list_dict1[startIndex]:
startIndex=j
temp=data_list_dict1[i]
data_list_dict1[i]=data_list_dict1[startIndex]
data_list_dict1[startIndex]=temp
return temp.append(pap4globals.data_list_dict)
if rev==True:
temp=0
for i in range(0,len(data_list_dict1)-1):
startIndex=len(data_list_dict1)-1
for j in range(len(data_list_dict1[i]-2,i-1,-1)):
if data_list_dict1[j]>data_list_dict1[startIndex]:
startIndex=j
temp=data_list_dict1[i]
data_list_dict1[i]=data_list_dict1[startIndex]
data_list_dict1[startIndex]=temp
return temp.append(pap4globals.data_list_dict)
其中pap4globals
import os
def initiate():
global data_list_dict
data_list_dict=[]
试图调用pap4drv.py上的函数
import os
import pap4globals
from pap4lib import *
def main():
pap4globals.initiate()
sort1(pap4globals.data_list_dict,False)
print(pap4globals.data_list_dict)
if __name__ == "__main__":
main()
然后我收到错误消息
TypeError: unsupported operand type(s) for -: 'dict' and 'int'
仍然对适合我目的的替代品感到困惑。仅在下一行吗?
for j in range(len(data_list_dict1[i]-2,i-1,-1)):
ps.s。 :我的讲师不允许我们在python中使用内置函数
行:
for j in range(len(data_list_dict1[i]-2,i-1,-1)):
应更改为
for j in range(len(data_list_dict1[i])-2,i-1,-1):
现在出现错误,因为len
的参数过多。
其次,以下行
if data_list_dict1[j] < data_list_dict1[startIndex]:
将抛出错误,因为两个词典之间不支持<
。
关于您到底想排序什么?