gpt4 book ai didi

Python - 这两行是做什么的?

转载 作者:太空宇宙 更新时间:2023-11-04 07:45:18 25 4
gpt4 key购买 nike

作为 Python 的新手,我花了很长时间弄清楚这两行代码的作用:

for i in [j for j in xrange(0, N) if [k for k in xrange(j) if now[k] == now[j]] == []]:
for j in [k for k in xrange(1, K + 1) if [l for l in xrange(i) if now[l] == k] == []]:

有没有办法重写这个让像我这样的菜鸟也能理解?谢谢。

最佳答案

呃。阅读那是 body 上的痛苦。这是一个很好的例子,说明如何使用列表理解。

这是一个不使用列表理解的严格重写:

for i in xrange(0, N):
implicit_list_1 = []
for k in xrange(i):
if now[k] == now[i]:
implicit_list_1.append(i)
if implicit_list_1 == []:
for j in xrange(1, K + 1):
implicit_list_2 = []
for l in xrange(i):
if now[l] == j:
implicit_list_2.append(l)
if implicit_list_2 == []:

这里有一个更惯用的重写:

for i in xrange(N):
if now[i] not in now[:i]:
for j in xrange(1, K + 1):
if j not in now[:i]:

这是假设 K 是一个单独的变量,而不是输入错误的 k

此外,那些单字母变量名的风格很差。最好使用实际反射(reflect)变量用途的变量名。

关于Python - 这两行是做什么的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9595861/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com