如何将此代码转换为python列表理解?
我写了下面的内容,但不知道在哪里使用如何将此代码转换为python列表理解?,python,list,list-comprehension,Python,List,List Comprehension,我写了下面的内容,但不知道在哪里使用q=input() 最好避免使用列表理解的副作用。见和。也就是说,为了好玩,使用Python3.8,您可以通过 [print("NOT PRESENT") if q not in array_num else print(array_num.count(q)) for i in range(l)] 其中表达式q:=input()将导致input()的返回值被分配给q,表达式本身的值将成为q的新值,因为它的副作用最好避免使用列表理解。见和。也就是说,为了好玩,
q=input()
最好避免使用列表理解的副作用。见和。也就是说,为了好玩,使用Python3.8,您可以通过
[print("NOT PRESENT") if q not in array_num else print(array_num.count(q)) for i in range(l)]
其中表达式
q:=input()
将导致input()
的返回值被分配给q
,表达式本身的值将成为q
的新值,因为它的副作用最好避免使用列表理解。见和。也就是说,为了好玩,使用Python3.8,您可以通过
[print("NOT PRESENT") if q not in array_num else print(array_num.count(q)) for i in range(l)]
其中表达式
q:=input()
将导致input()
的返回值被分配给q
,表达式本身的值将成为q
的新值的值。为什么需要对列表进行理解?使用整洁的特性非常好,但是第一个代码位是可读的、可理解的、可维护的和清晰的。另一位,不太多。列表理解返回一个列表
。这里您正在打印每次迭代的结果,所以在这里使用它没有意义。列表理解不允许将值分配给变量-您必须在[input()]中对q使用,然后您可以构造列表理解-但它会创建不可读的代码。虽然您可以,我认为在列表理解中使用input
不是一个好主意。为什么在列表理解中需要这样做?使用整洁的功能非常好,但第一个代码位是可读的、可理解的、可维护的和清晰的。另一位,不太多。列表理解返回一个列表
。这里您正在打印每次迭代的结果,所以在这里使用它没有意义。列表理解不允许将值分配给变量-您必须在[input()]
中对q使用,然后您可以构造列表理解-但它会创建不可读的代码。虽然您可以,我认为在列表中使用input
不是一个好主意
[print("NOT PRESENT") if (q:=input()) not in array_num else print(array_num.count(q)) for i in range(l)]