Найти - Пользователи
Полная версия: помогите врубиться в эти массивы на Python
Начало » Python для новичков » помогите врубиться в эти массивы на Python
1 2
Virus-Hunter
Здравствуйте. Вот начал учить Python и уже изучаю массивы. И тут как раз дана задача: Дан одномерный массив числовых значений, насчитывающий N элементов.
Поменять местами элементы, стоящие на чётных и нечётных местах A ↔
A; A ↔ A . . . Организовать массив вроде как получилось
n=int(input(“введите количество элеентов в массиве ”))
massiv=
for i in range(0,n):
a=input()
massiv.append(a)
print(massiv)

А вот как дальше делать не могу понять. Помогите разобраться, пожалуйста
Master_Sergius
Во-первых, код заворачивайте в теги “код”.
Во-вторых, тут надо по сути переприсвоить значения соседних элементов, если я правильно понял.
A[i], A[i+1] = A[i+1], A[i]

Ну и так смещаться через 2 индекса дальше
PanovSergey
Синтаксис для slice такой
[start:end:step]
Тогда:
l = [1,2,3,4,5,6,7,8]
l_odd = l[::2]
l_even = l[1::2]
print l_odd
print l_even
l[::2], l[1::2] = l[1::2], l[::2]
print l


py.user.next
PanovSergey
Синтаксис для slice такой
>>> lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> 
>>> lst[::2], lst[1::2] = lst[1::2], lst[::2]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: attempt to assign sequence of size 4 to extended slice of size 5
>>>
PanovSergey
Блин вы же взрослый человек. Чем поможет топикстартеру, если сейчас все через itertools написать? Понятно что на нечетных работать в лоб не будет. дайте человеку хоть чутка подумать.
bs0d
py.user.next ну так можно еще на стадии ввода проверить
while True:
	n = int(input())
	n = n % 2
	if n==0:
		break
	else:
		print('введите четное число элементов')
Rodegast
s=range(10); s2=[]
map(lambda (x,y): (s2.append(x),s2.append(y)),zip(s[1::2],s[::2]))
print s2
py.user.next
bs0d
py.user.next ну так можно еще на стадии ввода проверить
минимум должен быть таким, чтобы работало и для чётного количества, и для нечётного
Virus-Hunter
Всем привет. Спасибо за ваши советы От Души Прям!!! Вот мой вариант на основе ваших предложений и он вроде как работает!

N=int(input('Vvedi '))
a=
for i in range(0,N):
iinput())
a.append(i)
print(a)
for j in range(0,len(a)-1):
if j%2==0:
a,a=a,a
print(a)
Virus-Hunter
Хрень получилась. Как вы выводите так красиво сообщения на форуме?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB