python - 遍历数组

标签 python arrays python-3.x swap

我有一个 bool 值数组,现在我想将这些条目换成数字。

False => 0
True => 1

我写了两段不同的代码,我想知道哪一段更好,为什么。这与其说是关于实际解决问题,不如说是关于学习。

arr = [[True,False],[False,True],[True,True]]

for i,row in enumerate(arr):
    for j,entry in enumerate(row):
        if entry:
            arr[i][j] = 1
        else:
            arr[i][j] = 0
print(arr)

第二种方法:

arr = [[True,False],[False,True],[True,True]]

for i in range(len(arr)):
    for j in range(len(arr[i])):
        if arr[i][j]:
            arr[i][j] = 1
        else:
            arr[i][j] = 0    
print(arr)

我读到有一些方法可以通过导入 itertools 或类似工具来做到这一点。如果可以使用“机载工具”来完成,我真的不喜欢导入东西,但我应该使用它们来解决这个问题吗?

最佳答案

让我们定义你的数组:

>>> arr = [[True,False],[False,True],[True,True]]

现在,让我们将 bool 值转换为整数:

>>> [[int(i) for i in row] for row in arr]
[[1, 0], [0, 1], [1, 1]]

或者,如果我们想更灵活地替换什么,我们可以使用三元语句:

>>> [[1 if i else 0 for i in row] for row in arr]
[[1, 0], [0, 1], [1, 1]]

关于python - 遍历数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33446708/

相关文章:

python - 寻找列表中的下一个障碍

python - pypi 文档页面下的谷歌分析(packages.python.org)

MySQL返回数组中的打印两次

python - 带有 Python 3.3 的蓝牙服务器

python - MATLAB 中的 Python zip 函数等效于什么?

javascript - 尝试使用reduce在Javascript中添加路由父URL

python-3.x - 根据匹配值从其他数据框中复制列

python - 为什么我的pydoc命令会检索exception.syntaxerror?

python - 如何解决尝试发射子弹时遇到的问题?

python - 由于 Imagemagick 的错误,无法用 moviepy 编写文本剪辑