|
发表于 2021-12-12 19:31:08
|
显示全部楼层
reverse()方法是将直接将列表反转,是没有返回值的,所以结果是None,一定要返回值,可以用list(reversed(A))。
再有,你的代码看上去不到对哦,for i in range(len(A)),意思是A有多少元素就执行多少次循环,你这里是3次,3次A.reverse()等于1次A.reverse(),你这个for循环没什么意义,所以列表推导式也就没意义了。
我猜你实际的题目应该是把列表里的列表反转过来,就是这样的结果:[[3, 2, 1], [6, 5, 4], [9, 8, 7]],那么循环的代码应该是这样的:
- A = [[1,2,3],[4,5,6],[7,8,9]]
- for i in range(len(A)):
- A[i].reverse()
- print(A)
复制代码
对应的列表推导式应该是这样的:
- [A[i].reverse() for i in range(len(A))]
复制代码
这里是不用赋值的,因为整个操作就是对列表A直接进行操作,赋值的话,结果是None,None,None了,但只要不是赋值给A,A的结果仍然是正确的,因为已经操作过了。
其实上面的代码不用那么麻烦的,改成这样更精简:
- A = [[1,2,3],[4,5,6],[7,8,9]]
- for i in A:
- i.reverse()
- print(A)
复制代码
推导式:
随便问一下楼上付费了吗? |
|