
Zart
08.09.2016
19:57:33
а как ты будешь отличать этот вариант от обычного тупла?

Petro
08.09.2016
19:58:29
А почему бы и нет? Вот если действительно, нужен не срез от и до, а список с определёнными индексами из другого. Без того, чтобы цикл городить.

Zart
08.09.2016
19:58:58
>>> Fuse_list = {(0,2,4,5,6,7,8,11): 'no chance'}
>>> Fuse_list[0,2,4,5,6,7,8,11]
'no chance'
идите нахер со своей непродуманной хуйней

Google

Zart
08.09.2016
20:02:19
по факту вы хотите map(Fuse_list.__getitem__, [0,2,4,5,6,7,8,11])

Petro
08.09.2016
20:04:00
Похоже, мы сейчас о разном говорим.
Я о:
>> list = ['a', 'b', 'c', 'd', 'e']
>> list_new = list[1, 3]
list_new
['b', 'd']

Zart
08.09.2016
20:04:40
а ты понимаешь что list[1, 3] сейчас является валидной конструкцией?
как вы это будете отличать от своего списка индексов?

Petro
08.09.2016
20:05:27
»> list = ['a', 'b', 'c', 'd', 'e']
»> list[1, 3]
Traceback (most recent call last):
File "<pyshell#5>", line 1, in <module>
list[1, 3]
TypeError: list indices must be integers or slices, not tuple
»>
Нет, не является

Zart
08.09.2016
20:05:40
я про x[1, 3] вообще
конкретно на list типе оно даст индексеррор
но на диктах и других работать будет

Petro
08.09.2016
20:06:20
Так на диктах и доступ по индексу не существует.

Zart
08.09.2016
20:06:21
и я про синтаксис, а не рантайм поведение
я только что пример привел?

Petro
08.09.2016
20:06:58
Так что в любом случае для листа и дикта конструкция x[i] сейчас работает по разному.

Google

Zart
08.09.2016
20:07:03
в питоне доступ по ключу и по индексу синтактически одинаковы
поебать. синтаксис-то един
и никто не мешает вам создать кроме list и dict новый тип listdict, который будет вести себя как хочется

Petro
08.09.2016
20:08:26
Ну да. У тебя претензии к тому, что после такого нововведения синтаксис будет один, а поведение разное. Так и сейчас у нас синтаксис один, а поведение разное.

Zart
08.09.2016
20:10:13
>>> class listslice(list):
... def __getitem__(self, idx):
... return list.__getitem__(self, idx) if not isinstance(idx, tuple) else [list.__getitem__(self, i) for i in idx]
...
>>> l = listslice([1, 2, 4, 6, 7, 8, 9])
>>> l[1]
2
>>> l[1, 3]
[2, 6]
пазазя. зачем вам вводить новые правила, если старых хватает?

Andrey
08.09.2016
20:10:49
try:
a = foo[b]
except TypeError:
pass

Zart
08.09.2016
20:11:00

Andrey
08.09.2016
20:11:33
Я к тому, что такой код сломается после этого изменения

Zart
08.09.2016
20:11:36
потому что [] бросает сабклассы LookupError - IndexError и KeyError
почему сломается?
тайперрор и так сломан 8)
ну а поведение индексации можно задать любым

Andrey
08.09.2016
20:13:04

Zart
08.09.2016
20:13:41
ну. прекрасный пример мимо кассы

Andrey
08.09.2016
20:13:51
почему сломается?
Ну сейчас выкидывается исключение, а если сделать возможным использование tuple для выборки элементов, то его не будет

Zart
08.09.2016
20:14:33
т.е. вы хотите впидарасить стандартному типу list специальное поведение для индексации туплами?
вернусь к изначальному вопросу
нахуя?

Andrey
08.09.2016
20:15:39
Ну вообще я просто привел пример кода, который сломается, если добавить специальное поведение

Google

Zart
08.09.2016
20:15:52
не вижу чтобы эта операция была достаточно распространенной и очевидной чтобы её включали в язык
энивей, подобные идеи и рацпредложения можно писать в python-ideas мыллист
если у идеи будет достаточная поддержка то дискуссия переходит в python-dev и написание пепов
и придётся объяснять, зачем оно там

Andrey
08.09.2016
20:19:03

Zart
08.09.2016
20:19:39
либо компрехеншен по месту, либо функция, либо класс... вариантов пачка

Petro
08.09.2016
20:21:51
В стандартной библиотке хватает редко используемого функционала, так что аргумент про распространённость точно мимо.

Zart
08.09.2016
20:22:09
например?
часть стдлиба досталась с древних времен
коечто выпилили при переходе на тройку

Petro
08.09.2016
20:26:35
bz2, xdrlib, turtle
А часть функционала реализуется на коленке в две строчки, например, CSV

Zart
08.09.2016
20:27:08
да ты что
bzip2 используется несколькими модулями в стдлибе

Petro
08.09.2016
20:27:48
Давно turtle использовал?

Zart
08.09.2016
20:28:15
xdrlib вроде всё еще нужен для работы rpclib кажется
turtle в питоне для обучающих целей, поэтому его выпиливать никто не будет

Petro
08.09.2016
20:28:49
Я же не говорю, что они не нужны. Просто редко используются.
Всем спасибо за интересную дискуссию. Пойду спать.
Если что, самому не нужен был такой способ работы со списками. Просто стало интересно, почему бы и нет?

fox.lua
08.09.2016
20:34:13
И в самом деле, почему бы и да!

Google

fox.lua
08.09.2016
20:34:27

Sergey
08.09.2016
20:38:12

Andrey
08.09.2016
21:14:50
Кстати, вот решение подобных задач прямо из стандартной библиотеки - https://docs.python.org/2/library/operator.html#operator.itemgetter
Принимает в том числе список индексов

Zloy geniy
09.09.2016
05:40:12
есть 10 чисел,я их показываю с помощью for т.е. как список
нужно суммировать их
for i in range(1,10+1)
1+2 +3 +4 +5 +6+7+8+9+10
как показать?

Admin
ERROR: S client not available

Petr
09.09.2016
05:41:03
Такое будущее меня настораживает

Zloy geniy
09.09.2016
05:41:08
;D
сам в шоке
помоги если знааешь
знаешь*

Petr
09.09.2016
05:41:50
Про переменные читал?

Zloy geniy
09.09.2016
05:42:08
да

Norton
09.09.2016
05:42:12
i+=i

Zloy geniy
09.09.2016
05:42:40
ок ща попробуем

Petr
09.09.2016
05:42:49
i+=i
Хы, а в следующей итерации i уже другое будет

Google

Johnnie
09.09.2016
05:43:27
https://docs.python.org/2/library/functions.html#sum ?
ой бля, второй
https://docs.python.org/3.3/library/functions.html#sum
вот :)
min, max = 1, 11
s = 0
for i in range(min, max):
s += i
print(i)
print(s)
print(sum(range(min, max)))

Petr
09.09.2016
05:47:17
ой бля, второй
Поставь в хром расширение которое всегда правит 2й на 3й

Johnnie
09.09.2016
05:47:51
где правит? в запросах к гуглу?

Zloy geniy
09.09.2016
05:50:53
джони чет не то ))

Johnnie
09.09.2016
05:51:37
вам шашечки или ехать?
сумму или с плюсиками?

Petr
09.09.2016
05:51:59
Редиректит на 3 питон

Zloy geniy
09.09.2016
05:52:06
сумму

Johnnie
09.09.2016
05:53:44
https://repl.it/DZ7O
мне кажется все то

Zloy geniy
09.09.2016
05:57:00
я вставил твой код и там Итог должен показать сумму всех 10 чисел)т. е. 1+2 +3 +4 +5 +6 +7 +8 +9+10= ?

Johnnie
09.09.2016
05:57:33
абсолютли
я даже в экселе проверил

Zloy geniy
09.09.2016
05:58:20
min, max = 1, 11
s = 0
for i in range(min, max):
s += i
print(i)
print(s)
так да)спасиб
Эта группа больше не существует