python - 如何创建二进制数字的无限循环?

标签 python list loops binary

例如: 0 10 11 100 101 110 111

等等。

我想让它无限地进行,但这可能是不可能的。 我已经尝试过这个:

lista = [1,2,3,4,5,6,7,8,9,10]
listres = [str(bin(x))[2:].zfill(4) for x in lista]
print(listres)

它确实有效,但都是一行,而且不是无限的。

最佳答案

您可以创建一个生成器:

def infinite_binary():
    x = 0
    while True:
        yield str(bin(x))[2:]
        x += 1

infinite_binary_gen = infinite_binary()
while True:
    print(next(infinite_binary_gen))

输出:

0
1
10
11
100
101
110
111
1000
1001
... and so on

@chepner 中所述的评论您可以使用 itertools.<b>count</b>(<i>start=0</i>, <i>step=1</i>) 对于基本生成器:

from itertools import count

infinite_binary_gen = (str(bin(x))[2:] for x in count())
while True:
    print(next(infinite_binary_gen))

关于python - 如何创建二进制数字的无限循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65603345/

相关文章:

python - 尝试仅循环数学测验程序的某些部分

c++ - 数组索引循环开始而不是内存访问错误

python - 如何拆分一个非常大的python文件?

python - Pygame键盘输入问题

python - 检查目录路径是否相同

java - 从 List 更改为 ArrayList 消除了错误“List 是抽象的,无法实例化?

Python - 在for循环中为n个变量赋值

python - 将某种 XML/Json 文件编译成 Graphiz/有限状态自动机。有什么建议么?

python - 合并一列列表上的两个数据框

python - 如何在两个数据框中查找相同的列名并组合匹配的列