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/

Reply via email to