I'm wondering how your examples would go with from funcoperators import infix (https://pypi.org/project/funcoperators/)
sum(1:6) # instead of sum(range(1, 6)) > > sum(1 /exclusive/ 6) list(1:6) > > list(1 /exclusive/ 6) set(1 /exclusive/ 1) Note that you can pick another name. Note that you can pick another function : @infix def inclusive (a, b): return range(a, b+1) sum(1 /inclusive/ 6) for i in (1:6): > > print(i**2) > > for i in 1 /exclusive/ 6: print(i**2) (i**2 for i in (1:6)) > > (i ** 2 for i in 1 /exclusive/ 6) It also makes forming reusable slices clearer and easier: > > my_slice = (:6:2) # instead of slice(None, 6, 2) > my_list[my_slice] > > I don't have exact equivalent here, I would create a function or explicitly say slice(0, 6, 2) This is similar to passing a range/slice object into the respective > constructor: > > > [1:6] # list(1:6) or [1, 2, 3, 4, 5] > {1:6} # set(1:6) or {1, 2, 3, 4, 5} > > As mentioned before {1:6} is a dict. Here are a few more examples: > > > for i in (:5): # 5 elements 0 to 4, i.e. range(5) > > print(i**2) > > Everybody knows i in range(5). > for i in (1:): # counts up from one for as long as you want, i.e. count(1) > > Well, count(1) is nice and people can google it.
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/