列表推导式求助
本帖最后由 13375002215 于 2021-12-12 19:27 编辑A = [,
,
]
for i in range(len(A)):
A.reverse()
这个如何利用列表推导式进行表达?
A = .reverse() for i in range(len(A))]
使用以上列表推导式得出的结果是A
使用循环表达的结果是A [, , ] 楼主,你发错贴了,别人想帮你必须先支付 10 鱼币?{:5_109:} 傻眼貓咪 发表于 2021-12-12 18:30
楼主,你发错贴了,别人想帮你必须先支付 10 鱼币?
哈哈哈哈哈哈哈哈 reverse()方法是将直接将列表反转,是没有返回值的,所以结果是None,一定要返回值,可以用list(reversed(A))。
再有,你的代码看上去不到对哦,for i in range(len(A)),意思是A有多少元素就执行多少次循环,你这里是3次,3次A.reverse()等于1次A.reverse(),你这个for循环没什么意义,所以列表推导式也就没意义了。
我猜你实际的题目应该是把列表里的列表反转过来,就是这样的结果:[, , ],那么循环的代码应该是这样的:
A = [,,]
for i in range(len(A)):
A.reverse()
print(A)
对应的列表推导式应该是这样的:
.reverse() for i in range(len(A))]
这里是不用赋值的,因为整个操作就是对列表A直接进行操作,赋值的话,结果是None,None,None了,但只要不是赋值给A,A的结果仍然是正确的,因为已经操作过了。
其实上面的代码不用那么麻烦的,改成这样更精简:
A = [,,]
for i in A:
i.reverse()
print(A)
推导式:
随便问一下楼上付费了吗? 13375002215 发表于 2021-12-12 19:24
哈哈哈哈哈哈哈哈
A = [,
,
]
for i in range(len(A)):
A.reverse() # 问题出现在这里
print(A)
A = for i in range(len(A))][::-1]
这样可以吗? 本帖最后由 13375002215 于 2021-12-13 11:37 编辑
txxcat 发表于 2021-12-12 19:31
reverse()方法是将直接将列表反转,是没有返回值的,所以结果是None,一定要返回值,可以用list(revers ...
是要取从右上到左下的值,我自己是做出来了答案的。
A = [-i-1] for i in range(len(A))]
或
A = [-i-1] for i in range(len(A))]
或
A = [-i-4] for i in range(-len(A),0)]
只是想看看还有没有其他方法。。因为想到reverse()可以将列表反转,所以用A.reverse()去将[,,]反转成[,,]这样,就可以通过A直接取3,5,7出来。
你讲到的reverse()返回值是None,我就明白了。{:5_104:} 孤独的小鸟 发表于 2021-12-12 19:50
A = [::-1]
这样可以吗?
如果只是反转的话,不需要列表推导式。A[::-1]就可以了
页:
[1]