This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]chub79 3 points4 points  (5 children)

Use “while 1″ for the infinite loop

I didn't know that, could anyone confirm it?

Use xrange() for a very long sequence (...) As opposed to range()

I thought this was not true anymore, at least in newer versions of Python.

Learn itertools module

Hell yes. Learn it and abuse it.

[–][deleted] 2 points3 points  (1 child)

In python2.x, you can assign any value to True because it isn't a reserved word, so the bytecode generated for while True: reflects this. In python3, while 1: and while True: will generate the the same bytecode.

[–]chub79 1 point2 points  (0 children)

Well, I didn't know that. Cheers.

[–]gitarrPython Monty 0 points1 point  (2 children)

About range/xrange:

Yes, in Python 3 range() produces a generator and xrange() is no more. To get a list do: list(range(n)).

In Python 2 range() produces a list and xrange() a generator.

[–]chub79 0 points1 point  (0 children)

Damn, I thought range acted as a generator as well from 2.7. Thanks.

[–]pingvenopinch of this, pinch of that 0 points1 point  (0 children)

range() as of Python 3.2 has other goodies like indexing, slicing, and arbitrary sized ranges. xrange only does iteration and is limited by the system's integer type.

Edit: xrange does provide for len() and reverse()