python-在for循环中更改元素

python-在for循环中更改元素,python,sorting,Python,Sorting,假设我们有三个列表: listA = [5,6,2] listB = [7,1] listC = [5,3,6] 我想在一个循环中对这些列表进行排序,以便执行以下操作: for thisList in [listA, listB, listC]: # edited, was 'list' here thisList = thisList.sort() 其中thisList将是listA,然后是listB,然后是listC,因此在最后我的列表如下: listA = [2,5,6] l

假设我们有三个列表:

listA = [5,6,2]
listB = [7,1]
listC = [5,3,6]
我想在一个
循环中对这些列表进行排序,以便执行以下操作:

for thisList in [listA, listB, listC]:  # edited, was 'list' here
    thisList = thisList.sort()
其中
thisList
将是
listA
,然后是
listB
,然后是
listC
,因此在最后我的列表如下:

listA = [2,5,6]
listB = [1,7]
listC = [3,5,6]
有办法做到这一点吗

注意-这只是一个例子,我正在处理的问题有点难,但我想做一个简单的例子,我需要什么

--编辑--

如果我想在这里做一些自定义排序呢? 我知道,例如,我可以通过以下方式进行自定义排序: myList=已排序(myList,key=lambda val:val/2)

但是我在这里使用的是
sorted
,而不是
sort

我可以在
排序中使用自定义排序吗

询问原因给定答案(thx btw;)正在使用
排序

尝试以下方法:

listA = [5,6,2]

listB = [7,1]

listC = [5,3,6]

lists = [listA, listB, listC]

for indx, list in enumerate(lists):
    lists[indx] = sorted(list)



In [52]: lists
Out[52]: [[2, 5, 6], [1, 7], [3, 5, 6]]

不要用数字或字母来命名变量。将所有列表放在另一个列表中。然后可以在for循环中对这些对象进行操作:

lists = [listA, listB, listC]

for lst in lists:
    lst.sort()

在旁注中,在循环时不要使用保留字
列表

您已经接近了。你想要的是:

for thisList in [listA, listB, listC]:
    thisList.sort()
代码中的第一个问题是使用
list
作为循环变量,但是
thisList
在循环中。这些不一样。因此,无论您之前在模块或交互式会话中分配给
thisList
的是什么,您都只是在一遍又一遍地排序,而不会影响
listA
listB
listC

第二个问题是,该方法对列表进行适当排序并返回
None
,因此您不想对该返回值进行任何操作。用
None
覆盖
thisList
变量是无害的,但读者肯定会感到困惑,所以不要这样做


由于您已将问题编辑成不同的内容:

如果我想在这里做一些自定义排序呢?我知道,例如,我可以这样进行自定义排序:myList=sorted(myList,key=lambda val:val/2)…我可以在排序中使用自定义排序吗

查看和的文档。它们都使用
参数,并以相同的方式记录它。如果你不能从中猜出它们是否真的以同样的方式工作,那么你自己需要几秒钟的时间来测试它:

>>> lst = [2, 11]
>>> sorted(lst, key=str)
[11, 2]
>>> lst.sort(key=str)
>>> lst
[11, 2]

对列表进行适当排序并返回
None
,因此
thisList=thisList.sort()
将首先对旧列表进行适当排序,然后忘记它并将
thisList
重新分配给
None
,这似乎不是很有用。你到底想让它做什么?
对于列表中的子列表:sublist.sort()
你的示例不是按照你想要的那样工作吗?我添加了一个带有sorted的答案,你必须对值进行赋值,这是唯一的区别你已经将你的问题编辑成了一个完全不同的问题;不要那样做。另外,您还可以在和的联机帮助中再看一眼来回答这个问题:它们都使用做相同事情的
key
参数。否;这只是重复地重新分配
list
变量,而不影响实际的
listA
listB
listC
列表。是的,这很奇怪,出于某种原因,它第一次对我起作用,我匆忙地answer@Kasra:如果您希望实际影响
列表A
列表B
,则不会,和
listC
variables,这似乎是他想要做的。我编辑了我的问题,请检查一下我可以:)
>>> lst = [2, 11]
>>> sorted(lst, key=str)
[11, 2]
>>> lst.sort(key=str)
>>> lst
[11, 2]