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

Страница 508 из 1885
Arthur
01.10.2016
19:01:32
если мы на последнем мы же не последний плюсуем к первому? а предпоследний?

Igor
01.10.2016
19:01:51
Для элементов списка, являющихся крайними, одним из соседей считается элемент, находящий на противоположном конце этого списка.

ты прав, я немного неверно понял задание; кроме того, будет прибавляться второй и предпоследний элементы соответственно

> одним из соседей

Google
Arthur
01.10.2016
19:02:35
elif i == 0: print(a[-1] + a[1], end=' ') это же могу так оставить?

Igor
01.10.2016
19:02:39
т.е. вторым соседом будет настоящий, соседний, элемент

да, если elif == 0 идет ПОЗЖЕ, чем проверка, что элемент всего один

Arthur
01.10.2016
19:03:17
позже

Igor
01.10.2016
19:03:25
(а он у тебя идет позже, так что все ок) (если бы у тебя был один элемент, а ты бы попытался сделать a[1], то была бы ошибка)

Arthur
01.10.2016
19:05:34
так, надо свежиться по else: a = [int(i) for i in input().split()] for i in range(0, len(a)): if len(a) == 1: print(a[0]) elif i == 0: print(a[-1] + a[1], end=' ') elif len(a) - 1: print(a[-2] + a[0], end=' ') else: print(a[i - 1] + a[i + 1], end=' ')

мне нужно заменить как-то i-1 и i + 1?

Igor
01.10.2016
19:08:05
> мне нужно заменить как-то i-1 и i + 1? да вроде нет, не надо

но ты где-то что-то забыл

Zart
01.10.2016
19:08:24
научите его прекрасному, покажите ему enumerate

Igor
01.10.2016
19:08:30
:)

Arthur
01.10.2016
19:08:35
че-то забыл

Igor
01.10.2016
19:08:48
Google
Zart
01.10.2016
19:08:52
а хотя не. в этой задаче енум не нужен

Igor
01.10.2016
19:13:30
а хотя не. в этой задаче енум не нужен
слушай, ну через zip или генераторы ещё ебанутее и геморнее для новичка

или я че-то не понимаю, что можно еще проще, и без enumerate, и без текущего решения?

Arthur
01.10.2016
19:14:05
у меня тут то уже котел болит

Zart
01.10.2016
19:14:20
какой текущий вариант?

Zart
01.10.2016
19:14:26
влом скроллить и вникать

Igor
01.10.2016
19:14:32
for i in range(0, len(a))

Zart
01.10.2016
19:14:37
полный код пазазя

Igor
01.10.2016
19:14:41
с получением значения по a[i]

это полный

a = [int(i) for i in input().split()] for i in range(0, len(a)): if len(a) == 1: print(a[0]) elif i == 0: print(a[-1] + a[1], end=' ') elif len(a) - 1: print(a[-2] + a[0], end=' ') else: print(a[i - 1] + a[i + 1], end=' ')

Arthur
01.10.2016
19:14:55
a = [int(i) for i in input().split()] for i in range(0, len(a)): if len(a) == 1: print(a[0]) elif i == 0: print(a[-1] + a[1], end=' ') elif len(a) - 1: print(a[-2] + a[0], end=' ') else: print(a[i - 1] + a[i + 1], end=' ')

Igor
01.10.2016
19:15:06
вот задача

Напишите программу, на вход которой подаётся список чисел одной строкой. Программа должна для каждого элемента этого списка вывести сумму двух его соседей. Для элементов списка, являющихся крайними, одним из соседей считается элемент, находящий на противоположном конце этого списка. Например, если на вход подаётся список "1 3 5 6 10", то на выход ожидается список "13 6 9 15 7" (без кавычек). Если на вход пришло только одно число, надо вывести его же. Вывод должен содержать одну строку с числами нового списка, разделёнными пробелом.

Zart
01.10.2016
19:15:09
бже

Igor
01.10.2016
19:15:17
тут enumerate() идеально вписывается, имхо

Zart
01.10.2016
19:15:22
как раз нет

тут идеально вписывается функция 8)

Igor
01.10.2016
19:16:05
у тебя неправильная функция((((( In [8]: 8)() SyntaxError: invalid syntax

Google
Igor
01.10.2016
19:16:46
че-то забыл
вспомнил?

Arthur
01.10.2016
19:17:04
nope :(

Igor
01.10.2016
19:17:08
elif i == 0: print(a[-1] + a[1], end=' ') elif len(a) - 1: print(a[-2] + a[0], end=' ')

ошибка где-то здесь

где-то чего-то не хватает

скорее всего, "что-то" - это сравнение

Zart
01.10.2016
19:17:53
на степике это какой пункт курса?

Igor
01.10.2016
19:18:03
например, там, name == "Vasya"

Zart
01.10.2016
19:18:58
2.5 это видос

а, вижу

# put your python code here l = list(map(int, input().split())) s = len(l) if s == 1: print(l[0]) else: print(*[l[i-1] + l[(i+1)%s] for i in range(s)])

это то чем я решал 8)

Igor
01.10.2016
19:20:19
пиздец))

и правда

ты ебанутый!

Arthur
01.10.2016
19:20:50
я хз че тут сравнивать :(

Igor
01.10.2016
19:20:54
и это охуенно!

elif i == 0: print(a[-1] + a[1], end=' ') elif i == len(a) - 1: print(a[-2] + a[0], end=' ')

Arthur
01.10.2016
19:21:18
ёбанный стыд

Google
Zart
01.10.2016
19:21:28
собсно тут нюансов несколько первый - случай когда длина списка единица - особый

его лучше сразу ифом отсечь

Igor
01.10.2016
19:21:50
да я ему уже расписал нюансы)

но l[i+1]%s] это пиздец!

Zart
01.10.2016
19:21:58
у a[i-1] + a[i+1] есть два особых случая на краях

Igor
01.10.2016
19:22:00
круто!

Arthur
01.10.2016
19:22:04
Спасибо, все сработало

Zart
01.10.2016
19:22:06
это можно обходить по разному

Arthur
01.10.2016
19:22:19
чувствую себя тупорезом))

Igor
01.10.2016
19:23:07
чувствую себя тупорезом))
ниче страшного, я себя тоже частенько

b0g3r
01.10.2016
22:04:38
к открытому?

Только если в режиме чтения, похоже

Темный
01.10.2016
22:05:01
можно как то в сплит задать, что бы он пробелы сожрал вместе с точками, запятыми, тире и т.д

вобщем только буквы распарсил

b0g3r
01.10.2016
22:05:23
тебе не в сплит, а в re, похоже

Темный
01.10.2016
22:05:44
ок, спасибо

действительно в re \w+

чет он все равно цифры возвращает в виде строки

я подружаю рандом книгу в тхт если это важно

Zart
01.10.2016
22:50:53
поменяй \w на \S

Google
Темный
01.10.2016
22:55:21
поменяй \w на \S
точки берет и тире

Zart
01.10.2016
22:56:15
тогда через []

r'[^A-Za-z]+'

и что в той аналогии?

Темный
01.10.2016
23:02:38
r'[^A-Za-z]+'
спасибо, то что нужно

Zart
01.10.2016
23:03:43
кириллицу правда тоже вырежет

Темный
01.10.2016
23:06:14
не, я дописал А-яа-я

и без ^

Zart
01.10.2016
23:10:53
эээ

Темный
01.10.2016
23:11:44
что? вроде работает)

Zart
01.10.2016
23:11:50
ну тогда или re.findall(r'[A-Za-zА-Яа-яЁё]+') или re.splitl(r'[^A-Za-zА-Яа-яЁё]+')

ё в а-я не входит иирц

Темный
01.10.2016
23:12:29
а, ок

чет регулярки это зло для нуба

Leonid
01.10.2016
23:14:36
чет регулярки это зло для нуба
Я их вечно забываю, когда нужно снова ищу

Темный
01.10.2016
23:19:03
я вот потом вывожу 10 топ слов, через .most_common(), но хочу оставить толлько сами слова в порядке возрастания и без их количества повторений. Пробую итерировать по этому списку, но он ругается все 'int' object is not subscriptable

Zart
01.10.2016
23:23:15
сдается ты не пробуешь итерироваться

most_common - это у тебя Counter?

Темный
01.10.2016
23:24:20
да

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

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