Mar*_*Lee 3 python indexing list python-3.x
我的功能是这样的:
输入:
8
Run Code Online (Sandbox Code Playgroud)
输出:
['000', '001', '010', '011', '100', '101', '110', '111']
Run Code Online (Sandbox Code Playgroud)
所以这是创建一个列表来存储input_number从0开始的二进制数.这是我的代码(正确的版本):
import math
input_num = 8
max_bit = math.ceil(math.log(input_num, 2))
list_Bin = [None] * input_num
for i in range(input_num):
extra_d = max_bit - len(bin(i)[2:])
list_Bin[i] = '0'*extra_d + bin(i)[2:]
print(list_Bin)
Run Code Online (Sandbox Code Playgroud)
这段代码效果很好.但是,如果我改变一行代码:
list_Bin = [None] * input_num
Run Code Online (Sandbox Code Playgroud)
至
list_Bin = [] * input_num
Run Code Online (Sandbox Code Playgroud)
它会引发IndexError.
我真的很想知道为什么,因为我多次遇到过这个问题.
空列表就像0; 无论你乘以什么,答案仍然是一个空列表.
>>> [] == []*8
True
Run Code Online (Sandbox Code Playgroud)
并且[][x]会IndexError为任何价值筹集资金x.
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |