作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个 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/
我是一名优秀的程序员,十分优秀!