高效的python循环

时间:2019-04-13 13:17:15

标签: python

我想在python中编写一个for循环,例如以111、112、113、114、121、122、123、124、131等进行迭代,直到444。有没有一种有效的方法?

我试图在十进制和基数4的系统之间进行转换,但是有更好的方法吗?

4 个答案:

答案 0 :(得分:1)

>>> from itertools import chain
>>> for k in chain.from_iterable(range(i+1, i+5) for i in range(110, 450, 10)):
...     print(k)
...
111
112
113
114
121
122
123
124
131
132
133
134
141
142
.
.
.
423
424
431
432
433
434
441
442
443
444

答案 1 :(得分:0)

像这样:

[ i for i in range(111, 445) if '0' < str(i)[-1] < '5']

答案 2 :(得分:0)

您可以使用:

[Output1] == [Output2]
[1]  TRUE TRUE TRUE FALSE FALSE

答案 3 :(得分:0)

您可以使用numpy中的base_repr将整数范围转换为以4为底的数字:

import numpy


for i in range(64):
    print(int(numpy.base_repr(i, base=4)) + 111)

输出:

111
112
113
114
121
122
123
124
131
132
133
134
141
142
143
144
211
212
213
214
221
222
223
224
231
232
233
234
241
242
243
244
311
312
313
314
321
322
323
324
331
332
333
334
341
342
343
344
411
412
413
414
421
422
423
424
431
432
433
434
441
442
443
444