gpt4 book ai didi

列表理解中的 Python 语法错误?

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

教授介绍了一种编写代码的新方法。

x=[1,2,3,4,5,6,7,8,9]
y=[i<6 , for i in x]
print(y)

我期待以下输出

True, True, True, True, True, False, False, False, False

y 语句中是否存在语法错误?我的程序是高亮部分。

最佳答案

您不在列表理解中使用 ,。这很好用:

x = [1, 2, 3, 4, 5, 6, 7, 8, 9]

y = [i<6 for i in x]

print(y)

返回 [True, True, True, True, True, False, False, False, False]

你的教授教你的是list comprehension .我爱他们。写的简洁。

或者,你可以这样写,这样会更长:

z = []

for i in x:
if i < 6:
z.append(True)
else:
z.append(False)

print(z)

将返回 [True, True, True, True, True, False, False, False, False]

顺便说一下,上面的代码也可以用简写if else语法来写:

    z = []
for i in x:
z.append(True) if i < 6 else z.append(False)
return z

无论如何,这里有一个更完整的单元测试解决方案供您阅读。

import unittest

def so_26923986(x):

y = [i < 6 for i in x]
return y

def so_26923986_1(x):

z = []
for i in x:
z.append(True) if i < 6 else z.append(False)
return z

单元测试

# Unit Test
class Test(unittest.TestCase):
def testcase(self):
self.assertEqual(so_26923986([1, 2, 3, 4, 5, 6, 7, 8, 9]), [True, True, True, True, True, False, False, False, False])
self.assertEqual(so_26923986_1([1, 2, 3, 4, 5, 6, 7, 8, 9]), [True, True, True, True, True, False, False, False, False])

self.assertEqual(so_26923986([1, 2, 3]), [True, True, True])
self.assertEqual(so_26923986_1([1, 2, 3]), [True, True, True])

self.assertEqual(so_26923986([1, 2, 7, 10, 3, 8]), [True, True, False, False, True, False])
self.assertEqual(so_26923986_1([1, 2, 7, 10, 3, 8]), [True, True, False, False, True, False])

unittest.main()

测试通过

Ran 1 test in 0.000s

OK

关于列表理解中的 Python 语法错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26923986/

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