@Span4ev

Как присвоить переменным значения из списка через цикл?

Всем привет.
Интересует такой вопрос, указанный в заголовке. Так и не смог додуматься.

Допустим есть список
nums = [1, 2, 3, 4]

и нужно каким-то ещё не объявленным или уже объявленным переменным последовательно присвоить значения этого списка. Например:

(Сразу скажу, что решения у меня есть и они ниже)

for i in nums:
	a = i
	b = i
	c = i
	d = i
# Всем переменным присвоится последнее значение списка


for i in range(len(nums)):
	a = nums[i]
	b = nums[i]
	c = nums[i]
	d = nums[i]
# list out of range


Мне непонятна логика такого подхода, как в таком цикле разбить итерации, словно сделать паузу и сказать:
так, сначала одной переменной первое значение, затем второй - второе и т.д.

Решения есть, например:

# 1
x = [1, 2, 3, 4]
nums = iter(x)
a, b, c, d = next(nums), next(nums), next(nums), next(nums)

print(d, c, a, b) # 4 3 1 2


# 2
nums = [1, 2, 3, 4]
a, b, c, d = nums[0], nums[1], nums[2], nums[3]
print(d, c, a, b) # 4 3 1 2


И подозреваю, что ещё несколько найдётся с использованием функций.
Но кажется, что это костыльный метод, и само собой он не универсальный, потому что нужно прописывать индексы, а значит с большим числом - такое себе...
В случае с iter() и next() - немного поприятнее, но всё же - нужно указывать верное количество next() в зависимости от длины списка. Допустим что next() можно будет через функцию указывать равное длине списка. Не пробовал.

А вот хочется с циклом for понять, но не прихоти ради и не из каких-то принципов, а чисто для общего развития. Вроде понимаю, что решение должно быть, а вот додуматься не могу. Мне всегда циклы тяжело давались, особенно вложенные. Не по зубам они мне.
  • Вопрос задан
  • 1249 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы