Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/361.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 对列表列表中的元素进行排序_Python_List - Fatal编程技术网

Python 对列表列表中的元素进行排序

Python 对列表列表中的元素进行排序,python,list,Python,List,嘿,我有一张清单,上面写着: List = [[[1,2],[4,5,3]],[[5,2],[3,4,7]],...] 我想对每个子列表的元素进行排序,结果如下: List = [[[2,1],[5,4,3]],[[5,2],[7,4,3]],...] 我已经尝试过创建这样的循环 for i in List: for u in [i]: List[u].sort(reverse = True) print(List) 但它不起作用。在其他博客文章中,

嘿,我有一张清单,上面写着:

List = [[[1,2],[4,5,3]],[[5,2],[3,4,7]],...]
我想对每个子列表的元素进行排序,结果如下:

List = [[[2,1],[5,4,3]],[[5,2],[7,4,3]],...]
我已经尝试过创建这样的循环

for i in List:
    for u in [i]:
        List[u].sort(reverse = True)
        print(List)
但它不起作用。在其他博客文章中,我只是找到了如何排序列表的方法,但没有找到其中的元素。
谢谢你的帮助

这就是你要找的吗

for i in List:
    for u in i:
        u.sort(reverse = True)

这就是你要找的吗

for i in List:
    for u in i:
        u.sort(reverse = True)

您可以使用列表理解,轻松检索值,遍历每个子列表并对子列表进行排序

values = [[[1, 2], [4, 5, 3]], [[5, 2], [3, 4, 7]]]
values = [[sorted(subsub, reverse=True) for subsub in sub] for sub in values]
print(values) # [[[2, 1], [5, 4, 3]], [[5, 2], [7, 4, 3]]]
或者使用循环,您只需使用第二个循环访问内部列表并对其进行内联排序即可

for sub in values:
    for subsub in sub:
        subsub.sort(reverse=True)

注意:对变量使用有意义的名称

您可以使用列表理解,轻松检索值,遍历每个子列表并对子列表进行排序

values = [[[1, 2], [4, 5, 3]], [[5, 2], [3, 4, 7]]]
values = [[sorted(subsub, reverse=True) for subsub in sub] for sub in values]
print(values) # [[[2, 1], [5, 4, 3]], [[5, 2], [7, 4, 3]]]
或者使用循环,您只需使用第二个循环访问内部列表并对其进行内联排序即可

for sub in values:
    for subsub in sub:
        subsub.sort(reverse=True)

注意:对变量使用有意义的名称

您很接近,只是有几处错误:

对于[i]中的u:不要将i括在括号中。您只是创建了一个新的列表,其中i是它唯一的元素,并循环使用您不想要的元素

第二:

List[u].sortreverse=True您不需要执行List[u],而只需要执行u,因为在这个循环中,u等于要排序的子列表

还有一个补充说明,变量应该是小写的

myList = [[[1,2],[4,5,3]],[[5,2],[3,4,7]]]
for i in myList: 
    for u in i: 
        u.sort(reverse=True) 
print(myList)

你很接近,只是有几件事错了:

对于[i]中的u:不要将i括在括号中。您只是创建了一个新的列表,其中i是它唯一的元素,并循环使用您不想要的元素

第二:

List[u].sortreverse=True您不需要执行List[u],而只需要执行u,因为在这个循环中,u等于要排序的子列表

还有一个补充说明,变量应该是小写的

myList = [[[1,2],[4,5,3]],[[5,2],[3,4,7]]]
for i in myList: 
    for u in i: 
        u.sort(reverse=True) 
print(myList)

虽然在第二个循环中,您将i包含在一个列表中,而该列表不会循环遍历每个子列表,您只需要对u进行排序,因为您不会用列表分割列表

for i in List:
    for u in i:
        u.sort(reverse = True)

print(List)
结果:

[[[2, 1], [5, 4, 3]], [[5, 2], [7, 4, 3]]]
PS如果只有一层嵌套,那么我建议在循环之前使用isinstance进行检查,并在尝试对int进行排序时出错


虽然在第二个循环中,您将i包含在一个列表中,而该列表不会循环遍历每个子列表,您只需要对u进行排序,因为您不会用列表分割列表

for i in List:
    for u in i:
        u.sort(reverse = True)

print(List)
结果:

[[[2, 1], [5, 4, 3]], [[5, 2], [7, 4, 3]]]
PS如果只有一层嵌套,那么我建议在循环之前使用isinstance进行检查,并在尝试对int进行排序时出错

使用列表理解的另一种方法是一行:

li = [[[1,2],[4,5,3]],[[5,2],[3,4,7]]]

li = [[sorted(i, reverse=True) for i in j] for j in li]

print(li)
输出:

[[[2, 1], [5, 4, 3]], [[5, 2], [7, 4, 3]]]
使用列表理解的另一种方法是一行:

li = [[[1,2],[4,5,3]],[[5,2],[3,4,7]]]

li = [[sorted(i, reverse=True) for i in j] for j in li]

print(li)
输出:

[[[2, 1], [5, 4, 3]], [[5, 2], [7, 4, 3]]]

您可以使用Pandas对数据进行排序

import pandas as pd

ist = [[[1,2],[4,5,3]],[[5,2],[3,4,7]]]
df = pd.DataFrame(ist)
我给这些列命名是为了更容易阅读

df.columns = ['a', 'b']
现在我们可以对每个列表中的元素进行排序

df['a'] = df.a.apply(lambda x: sorted(x,reverse=True))
df['b'] = df.b.apply(lambda x: sorted(x,reverse=True))
这就产生了

print(df.head())

    a          b
0  [2, 1]  [5, 4, 3]
1  [5, 2]  [7, 4, 3]

您可以使用Pandas对数据进行排序

import pandas as pd

ist = [[[1,2],[4,5,3]],[[5,2],[3,4,7]]]
df = pd.DataFrame(ist)
我给这些列命名是为了更容易阅读

df.columns = ['a', 'b']
现在我们可以对每个列表中的元素进行排序

df['a'] = df.a.apply(lambda x: sorted(x,reverse=True))
df['b'] = df.b.apply(lambda x: sorted(x,reverse=True))
这就产生了

print(df.head())

    a          b
0  [2, 1]  [5, 4, 3]
1  [5, 2]  [7, 4, 3]

您似乎有一个方括号不匹配,所以不清楚您是否有列表列表,或列表列表列表。另外,请定义“不起作用”。怎么搞的?你的计算机开始摇晃,烟雾开始冒出来了吗?类型错误:列表索引必须是整数或切片,而不是tupleI。tupleI将研究for循环的语法。括号表示法用于在列表中的某个特定索引处执行某些操作,看起来您可以任意使用它。例如,您可以使用List[u]来访问列表中的特定项。@AbhijitSarkar方括号不是不匹配的,它是列表列表的列表。您的方括号似乎不匹配,因此不清楚您是列表列表的列表,还是列表的列表。另外,请定义“不起作用”。怎么搞的?你的计算机开始摇晃,烟雾开始冒出来了吗?类型错误:列表索引必须是整数或切片,而不是tupleI。tupleI将研究for循环的语法。括号表示法用于在列表中的某个特定索引处执行某些操作,看起来您可以任意使用它。例如,您可以使用列表[u]来访问列表中的特定项。@AbhijitSarkar方括号不是不匹配的,它是列表列表的列表,但解释OP的代码为什么不起作用可能是好的。是的,但解释OP的代码为什么不起作用可能是好的。