您如何使用嵌套列表理解完成以下序列
How do you accomplish the following sequence with a nested list comprehension
如何在 python3 中使用以下序列创建嵌套循环列表理解?
我想完成这个
for x in range(2):
for y in range(2):
print((x,y))
print("hi")
(0, 0)
(0, 1)
你好
(1, 0)
(1, 1)
嗨
但是,我只能走到这一步......
[ print((x,y))
for x in range(2)
for y in range(2)
]
(0, 0)
(0, 1)
(1, 0)
(1, 1)
谢谢!!!
列表理解不能替代正常的 for
循环。在其中使用具有副作用(例如 print
)的函数也不是最佳实践。话虽如此,这是一种(相当复杂的)实现您所追求的方式:
>>> print([y if y == "hi" else (x, y) for x in range(2) for y in list(range(2)) + ["hi"]])
[(0, 0), (0, 1), 'hi', (1, 0), (1, 1), 'hi']
或者,如果您坚持在推导式中包含 print
:
[print(y if y == "hi" else (x, y), end=" ") for x in range(2) for y in list(range(2)) + ["hi"]]
如何在 python3 中使用以下序列创建嵌套循环列表理解?
我想完成这个
for x in range(2):
for y in range(2):
print((x,y))
print("hi")
(0, 0) (0, 1) 你好 (1, 0) (1, 1) 嗨
但是,我只能走到这一步......
[ print((x,y))
for x in range(2)
for y in range(2)
]
(0, 0) (0, 1) (1, 0) (1, 1)
谢谢!!!
列表理解不能替代正常的 for
循环。在其中使用具有副作用(例如 print
)的函数也不是最佳实践。话虽如此,这是一种(相当复杂的)实现您所追求的方式:
>>> print([y if y == "hi" else (x, y) for x in range(2) for y in list(range(2)) + ["hi"]])
[(0, 0), (0, 1), 'hi', (1, 0), (1, 1), 'hi']
或者,如果您坚持在推导式中包含 print
:
[print(y if y == "hi" else (x, y), end=" ") for x in range(2) for y in list(range(2)) + ["hi"]]