提问人:J. B. 提问时间:12/20/2020 更新时间:12/20/2020 访问量:136
如何在 Python 中创建由多个对象组成的 3D 数组?
How can I create a 3D array made of more than one object in Python?
问:
我知道,如果我想在 Python 中创建一个 3D 数组,我可以这样做:
[[['#' for i in range(3)] for j in range(3)] for k in range(3)]
也就是说,如果我想在 3D 数组中包含另一个符号怎么办? 例如,如果我想在数组中的“#”和“-”之间交替使用,该怎么办?或者,如果我想要连续两个“#”,然后跟一个“-”,该怎么办?我怎么能写呢? 感谢您抽出宝贵时间接受采访。
答:
1赞
imraklr
12/20/2020
#1
试试这个:
>>> [[['#' if i%2==0 else '-' for i in range(3)] for j in range(3)] for k in range(3)]
[[['#', '-', '#'], ['#', '-', '#'], ['#', '-', '#']], [['#', '-', '#'], ['#', '-', '#'], ['#', '-', '#']], [['#', '-', '#'], ['#', '-', '#'], ['#', '-', '#']]]
评论
1赞
J. B.
12/20/2020
真的很感激!不知道为什么我没有想到这样的事情。感谢您的帮助!
2赞
U13-Forward
12/20/2020
#2
尝试使用 itertools.cycle
:
import itertools
it = itertools.cycle(['#', '-', '#'])
print([[[next(it) for i in range(3)] for j in range(3)] for k in range(3)])
输出:
[[['#', '-', '#'], ['#', '-', '#'], ['#', '-', '#']], [['#', '-', '#'], ['#', '-', '#'], ['#', '-', '#']], [['#', '-', '#'], ['#', '-', '#'], ['#', '-', '#']]]
1赞
costaparas
12/20/2020
#3
检查 的值,如果其 ;否则,将:i
#
< 2
-
[[['#' if i < 2 else '-' for i in range(3)] for j in range(3)] for k in range(3)]
要交替使用,只需使用模数:
[[['#' if i % 2 == 0 else '-' for i in range(3)] for j in range(3)] for k in range(3)]
评论
0赞
J. B.
12/20/2020
这非常有帮助,而且很有意义!非常感谢!
评论