Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中使用itemgetter或lambda进行排序时,有没有一种方法可以从字符串转换为整数?_Python_Dictionary_Lambda - Fatal编程技术网

在python中使用itemgetter或lambda进行排序时,有没有一种方法可以从字符串转换为整数?

在python中使用itemgetter或lambda进行排序时,有没有一种方法可以从字符串转换为整数?,python,dictionary,lambda,Python,Dictionary,Lambda,我有一个字典,所有id都是字符串(id_categ,id_macrocateg,id_microcateg)。我不想迭代所有的dict来将它们转换成整数,然后对它们进行排序。我想知道是否有一种方法可以使用itemgetter或lambda在排序时将所有ID转换为int 字典列表的一个示例如下(实际上,该列表可以动态更改): 我想要的输出是: l_dictt = [ {'id_categ': '1', 'id_macrocateg': '1', 'i

我有一个字典,所有id都是字符串(id_categ,id_macrocateg,id_microcateg)。我不想迭代所有的dict来将它们转换成整数,然后对它们进行排序。我想知道是否有一种方法可以使用itemgetter或lambda在排序时将所有ID转换为int

字典列表的一个示例如下(实际上,该列表可以动态更改):

我想要的输出是:

            l_dictt = [
            {'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '1'},
            {'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '111'},
            {'id_categ': '14', 'id_macrocateg': '1', 'id_microcateg': '35'},
            {'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '9'},
            {'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '19'},
            {'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '26'},
            {'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '4'},
            {'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '16'},
            {'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '17'},
            {'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '20'},
            {'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '21'},
            {'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '24'},
            {'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '31'},
            {'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '11'},
            {'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '12'},
            {'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '13'},
            {'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '10'},
            {'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '27'},
            {'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '28'},
            {'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'},
            {'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'},
            {'id_categ': '2', 'id_macrocateg': '50', 'id_microcateg': '554'}]
如果这3个键是整数,正如我希望先按id_macrocateg排序,然后按id_categ排序,最后按id_microcateg排序,我可以这样做:

  for dictt in sorted(l_dictt, key=itemgetter('id_macrocateg', 'id_categ', 'id_microcateg'):
     print(dictt)
但由于这些是字符串,我不能这样做

我试过:

    from operator import itemgetter
    for dictt in sorted(l_dictt, key=lambda x: int(itemgetter("id_macrocateg, id_categ, id_microcateg")(x))):

           print(dictt)
还有:

  from operator import itemgetter
  for dictt in sorted(l_dictt, key=lambda x: int(itemgetter("id_macrocateg")(x)),int(itemgetter("id_categ")(x))),int(itemgetter(("id_microcateg")(x))):
     print(dictt)

更新问题后的回答:

现在,您希望列表按照id_macrocateg、id_categ和id_microcateg进行排序,因此我们通过以下方式获得它:

sorted(l_dictt, key=lambda x: x['id_macrocateg'].zfill(10)+x['id_categ'].zfill(10)+x['id_microcateg'].zfill(10))
在这里,我假设最大位数可能是10位数“9999999999”,如果需要,我们当然可以进行更新

结果

{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '1'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '111'}
{'id_categ': '14', 'id_macrocateg': '1', 'id_microcateg': '35'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '9'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '19'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '26'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '4'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '16'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '17'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '20'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '21'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '24'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '31'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '11'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '12'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '13'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '10'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '27'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '28'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '2', 'id_macrocateg': '50', 'id_microcateg': '554'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '1'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '111'}
{'id_categ': '2', 'id_macrocateg': '50', 'id_microcateg': '554'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '11'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '12'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '13'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '10'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '27'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '28'}
{'id_categ': '14', 'id_macrocateg': '1', 'id_microcateg': '35'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '9'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '19'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '26'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '4'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '16'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '17'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '20'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '21'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '24'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '31'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
更新问题前的初始答案:

您可以按
id\u categ
的值对该字典进行排序,同时保持其值不变,如下所示:

for dictt in sorted(l_dictt, key=lambda x: int(x['id_categ'])):
    print(dictt)
结果

{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '1'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '111'}
{'id_categ': '14', 'id_macrocateg': '1', 'id_microcateg': '35'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '9'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '19'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '26'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '4'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '16'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '17'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '20'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '21'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '24'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '31'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '11'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '12'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '13'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '10'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '27'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '28'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '2', 'id_macrocateg': '50', 'id_microcateg': '554'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '1'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '111'}
{'id_categ': '2', 'id_macrocateg': '50', 'id_microcateg': '554'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '11'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '12'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '13'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '10'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '27'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '28'}
{'id_categ': '14', 'id_macrocateg': '1', 'id_microcateg': '35'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '9'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '19'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '26'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '4'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '16'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '17'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '20'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '21'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '24'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '31'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}

更新问题后的回答:

现在,您希望列表按照id_macrocateg、id_categ和id_microcateg进行排序,因此我们通过以下方式获得它:

sorted(l_dictt, key=lambda x: x['id_macrocateg'].zfill(10)+x['id_categ'].zfill(10)+x['id_microcateg'].zfill(10))
在这里,我假设最大位数可能是10位数“9999999999”,如果需要,我们当然可以进行更新

结果

{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '1'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '111'}
{'id_categ': '14', 'id_macrocateg': '1', 'id_microcateg': '35'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '9'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '19'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '26'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '4'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '16'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '17'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '20'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '21'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '24'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '31'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '11'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '12'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '13'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '10'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '27'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '28'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '2', 'id_macrocateg': '50', 'id_microcateg': '554'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '1'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '111'}
{'id_categ': '2', 'id_macrocateg': '50', 'id_microcateg': '554'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '11'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '12'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '13'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '10'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '27'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '28'}
{'id_categ': '14', 'id_macrocateg': '1', 'id_microcateg': '35'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '9'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '19'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '26'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '4'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '16'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '17'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '20'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '21'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '24'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '31'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
更新问题前的初始答案:

您可以按
id\u categ
的值对该字典进行排序,同时保持其值不变,如下所示:

for dictt in sorted(l_dictt, key=lambda x: int(x['id_categ'])):
    print(dictt)
结果

{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '1'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '111'}
{'id_categ': '14', 'id_macrocateg': '1', 'id_microcateg': '35'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '9'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '19'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '26'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '4'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '16'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '17'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '20'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '21'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '24'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '31'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '11'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '12'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '13'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '10'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '27'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '28'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '2', 'id_macrocateg': '50', 'id_microcateg': '554'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '1'}
{'id_categ': '1', 'id_macrocateg': '1', 'id_microcateg': '111'}
{'id_categ': '2', 'id_macrocateg': '50', 'id_microcateg': '554'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '11'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '12'}
{'id_categ': '10', 'id_macrocateg': '2', 'id_microcateg': '13'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '10'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '27'}
{'id_categ': '12', 'id_macrocateg': '2', 'id_microcateg': '28'}
{'id_categ': '14', 'id_macrocateg': '1', 'id_microcateg': '35'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '9'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '19'}
{'id_categ': '19', 'id_macrocateg': '1', 'id_microcateg': '26'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '4'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '16'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '17'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '20'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '21'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '24'}
{'id_categ': '21', 'id_macrocateg': '1', 'id_microcateg': '31'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}
{'id_categ': '30', 'id_macrocateg': '6', 'id_microcateg': '112'}

您的第三次尝试只是缺少一些括号,以确保对
int
的所有三个调用都是
lambda
表达式主体的一部分

from operator import itemgetter
for dictt in sorted(l_dictt, key=lambda x: (int(itemgetter("id_macrocateg")(x)),
                                            int(itemgetter("id_categ")(x))),
                                            int(itemgetter(("id_microcateg")(x))):
    print(dictt)
虽然
itemgetter
实际上只是在这里设置了障碍

for dictt in sorted(l_dictt, key=lambda x: (int(l_dictt["id_macrocateg"]),
                                            int(l_dictt["id_categ"]),
                                            int(l_dictt["id_microcateg"]):
    print(dictt)
您可以将
map
itemgetter
一起使用,类似于您的第二次尝试:

from operator import itemgetter


# Splitting up for readability
getter = itemgetter("id_macrocateg", "id_categ", "id_microcateg")

for dictt in sorted(l_dictt, key=lambda x: tuple(map(int, getter(x))):
    print(dictt)
尽管同样,具有键列表的生成器表达式可能更简单:

keys = ("id_macrocateg", "id_categ", "id_microcateg")

for dictt in sorted(l_dictt, key=lambda x: [int(x[k]) for k in keys]):

(使用列表只是因为没有元组理解;列表和元组排序方式相同。)

您的第三次尝试只是缺少一些括号,以确保对
int
的所有三个调用都是
lambda
表达式主体的一部分

from operator import itemgetter
for dictt in sorted(l_dictt, key=lambda x: (int(itemgetter("id_macrocateg")(x)),
                                            int(itemgetter("id_categ")(x))),
                                            int(itemgetter(("id_microcateg")(x))):
    print(dictt)
虽然
itemgetter
实际上只是在这里设置了障碍

for dictt in sorted(l_dictt, key=lambda x: (int(l_dictt["id_macrocateg"]),
                                            int(l_dictt["id_categ"]),
                                            int(l_dictt["id_microcateg"]):
    print(dictt)
您可以将
map
itemgetter
一起使用,类似于您的第二次尝试:

from operator import itemgetter


# Splitting up for readability
getter = itemgetter("id_macrocateg", "id_categ", "id_microcateg")

for dictt in sorted(l_dictt, key=lambda x: tuple(map(int, getter(x))):
    print(dictt)
尽管同样,具有键列表的生成器表达式可能更简单:

keys = ("id_macrocateg", "id_categ", "id_microcateg")

for dictt in sorted(l_dictt, key=lambda x: [int(x[k]) for k in keys]):

(使用列表只是因为没有元组理解;列表和元组排序方式相同。)

lambda x:tuple(map(int,x.values())
itemgetter
如果Python支持函数组合,例如
排序(l_dict,key=int),在这种情况下会更好∘itemgetter(“id\u macrocateg”)
。在国际海事组织中,运营商确实有必要获得全部利益
key=compose(int,itemgetter(“id_macrocateg”)
似乎仍然太冗长了。@SayandipDutta假设(
dict
中的每个值都可以转换为
int
,无论是否必要)。进行大量不必要的
int
调用也可能代价高昂。但最重要的是,它在
id\u-categ
之前对id\u-macrocateg进行排序。对于多列,
key=partial(map,int)∘itemgetter(“id\u macrocateg”、“id\u categ”、“id\u microcateg”)
lambda x:tuple(map(int,x.values())
itemgetter
如果Python支持函数组合,例如
排序(l\u dict,key=int),在这种情况下会更好∘itemgetter(“id\u macrocateg”)
。在国际海事组织中,运营商确实有必要获得全部利益
key=compose(int,itemgetter(“id_macrocateg”)
似乎仍然太冗长了。@SayandipDutta假设(
dict
中的每个值都可以转换为
int
,无论是否必要)。进行大量不必要的
int
调用也可能代价高昂。但最重要的是,它在
id\u-categ
之前对id\u-macrocateg进行排序。对于多列,
key=partial(map,int)∘itemgetter(“id\u macrocateg”、“id\u categ”、“id\u microcateg”)
。谢谢,但问题是id\u macrocateg没有订购。我想先按id_macrocateg订购,然后按id_categ订购,最后按id_microcateg订购。我编辑了这个问题,以便更好地解释我需要什么。在我发布了答案后,您已经修改了您的问题。谢谢,但问题是id_macrocateg没有排序。我想先按id_macrocateg订购,然后按id_categ订购,最后按id_microcateg订购。我编辑了这个问题,以便更好地解释我需要什么。在我发布答案后,您已经修改了您的问题。