Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 13, 2016 10:33:07

gratiani
Зарегистрирован: 2016-05-30
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывести индексы чисел в список

Во второй строке отображаются индексы чисел из первой строки. По всей видимости индексы должны начинаться с единицы. Как можно грамотно реализовать вывод второй строки?

 2 3 4 1
 4 1 2 3
 in0 = [int(x) for x in input().split()]
in1 = []
for x in in0:
    in1.append(in0[x])
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
IndexError: list index out of range

Отредактировано gratiani (Авг. 13, 2016 10:33:58)

Офлайн

#2 Авг. 13, 2016 11:51:30

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Вывести индексы чисел в список

gratiani
По всей видимости индексы должны начинаться с единицы
вообще то индексы начинаются с нуля как видно на примере.
 >>> in0 = [int(x) for x in input().split()]
2 3 4 1
>>> for x in range(len(in0)):
	print(x,end=' ')
0 1 2 3
а вообще суть вопроса не понятна. если как тема вопроса ‘Вывести индексы чисел в список’
то так
 in0 = [int(x) for x in input().split()]
list_index = [x for x in range(len(in0))]
print(list_index)

Отредактировано marvellik (Авг. 13, 2016 12:00:22)

Офлайн

#3 Авг. 13, 2016 12:00:17

gratiani
Зарегистрирован: 2016-05-30
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывести индексы чисел в список

marvellik
вообще то индексы начинаются с нуля как видно на примере.
Я знаю, что они с нуля начинаются. Как я понимаю, в данном примере отсчет начинается с единицы судя по задаче, потому-что если применять цикл, то он в итоге выходит за предел списка если его с нуля начинать, потому-что индекса 4 со сути нет уже в данном цикле.

Офлайн

#4 Авг. 13, 2016 12:04:13

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

Вывести индексы чисел в список

gratiani
Во второй строке отображаются индексы чисел из первой строки.
нет в первом списке элемента с индексом 4. что то тут не так. откуда задача?

Отредактировано marvellik (Авг. 13, 2016 12:05:24)

Офлайн

#5 Авг. 13, 2016 12:10:26

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Вывести индексы чисел в список

gratiani
for x in in0: in1.append(in0)
это не js! посмотрите как работают циклы в пайтоне



————————————————
-*- Simple is better than complex -*-

Офлайн

#6 Авг. 13, 2016 12:10:37

gratiani
Зарегистрирован: 2016-05-30
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывести индексы чисел в список

Может я не так разъясняю что-то.
Вот эта задача:
http://codeforces.com/problemset/problem/136/A

Офлайн

#7 Авг. 13, 2016 12:20:11

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10010
Репутация: +  857  -
Профиль   Отправить e-mail  

Вывести индексы чисел в список

gratiani
Как можно грамотно реализовать вывод второй строки?
Отнимай от индексов единицу. Есть ещё такой способ, когда в начале добавляется незначащий элемент, чтобы индексы сместились. Но лучше всего правильно индексы указывать.



Офлайн

#8 Авг. 13, 2016 14:09:35

gratiani
Зарегистрирован: 2016-05-30
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывести индексы чисел в список

 in0 = int(input())
in1  = [int(x) for x in input().split()]
in2 = [int(x) for x in range(1, len(in1)+1)]
in3 = []
dict0 = {}
for (k, v) in zip(in1, in2): dict0[k] = v
in3 = list(dict0.values())
print(' '.join([str(x) for x in in3]))
Значения в словарях упорядочиваются по ключам в том порядке, в каком необходимо.

Отредактировано gratiani (Авг. 13, 2016 14:10:37)

Офлайн

#9 Авг. 13, 2016 14:18:13

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Вывести индексы чисел в список

gratiani
Значения в словарях упорядочиваются по ключам в том порядке, в каком необходимо.
ни ключи ни значения с словарях не имеют никакого гарантированного порядка.
Надо было написать - на выходе получаете массив удовлетворяющий условию задачи.

 import numpy as np
idata=np.array("3 4 2 1".split(),dtype='i')-1
print(str(np.arange(len(idata))[idata]+1)[1:-1])



Отредактировано doza_and (Авг. 13, 2016 14:40:32)

Офлайн

#10 Авг. 13, 2016 14:22:13

gratiani
Зарегистрирован: 2016-05-30
Сообщения: 25
Репутация: +  0  -
Профиль   Отправить e-mail  

Вывести индексы чисел в список

doza_and
ни ключи ни значения с словарях никак не упорядочиваются.
Да, но присваиваются они последовательно в данном случае. И для решения задачи подошло.
http://codeforces.com/contest/136/submission/19848378

Отредактировано gratiani (Авг. 13, 2016 14:23:48)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version