Swi*_*ift 8 python arrays swap python-3.x
我有一系列bools,现在我想将这些条目换成数字.
False => 0
True => 1
Run Code Online (Sandbox Code Playgroud)
我写了两段不同的代码,我想知道哪一个更好,为什么.这不是关于实际解决问题,而是关于学习.
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)
Run Code Online (Sandbox Code Playgroud)
第二种方法:
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)
Run Code Online (Sandbox Code Playgroud)
我读到有些方法可以通过导入itertools或类似方式来完成此操作.如果可以使用"板载工具",我真的不喜欢导入东西,但我是否应该使用它们来解决这个问题?
Joh*_*024 12
让我们定义你的数组:
>>> arr = [[True,False],[False,True],[True,True]]
Run Code Online (Sandbox Code Playgroud)
现在,让我们将布尔值转换为整数:
>>> [[int(i) for i in row] for row in arr]
[[1, 0], [0, 1], [1, 1]]
Run Code Online (Sandbox Code Playgroud)
或者,如果我们想要更加灵活地替换什么,我们可以使用三元语句:
>>> [[1 if i else 0 for i in row] for row in arr]
[[1, 0], [0, 1], [1, 1]]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44849 次 |
| 最近记录: |