@python_beginnersЭта группа больше не существует

Страница 413 из 1885
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
try: a = foo[b] except TypeError: pass
мимокассы вообще

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
потому что [] бросает сабклассы LookupError - IndexError и KeyError
>>> b = (1, 2) >>> foo = [1, 2] >>> a = foo[b] Traceback (most recent call last): File "<pyshell#3>", line 1, in <module> a = foo[b] TypeError: list indices must be integers, not tuple

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
не вижу чтобы эта операция была достаточно распространенной и очевидной чтобы её включали в язык
И я не вижу. Пишется за полминуты, если в конкретном проекте она нужна больше двух раз, то оформляется в виде функции в каком-нибудь utils.py

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
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

мне кажется все то

Редиректит на 3 питон
ладно гляну, спасибо) пока не за своим ноутом

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)

так да)спасиб

Страница 413 из 1885

Эта группа больше не существует Эта группа больше не существует