Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 4, 2014 15:04:12

Virus-Hunter
Зарегистрирован: 2014-02-04
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите врубиться в эти массивы на Python

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

А вот как дальше делать не могу понять. Помогите разобраться, пожалуйста

Офлайн

#2 Фев. 4, 2014 15:45:04

Master_Sergius
Зарегистрирован: 2013-09-12
Сообщения: 271
Репутация: +  7  -
Профиль   Отправить e-mail  

помогите врубиться в эти массивы на Python

Во-первых, код заворачивайте в теги “код”.
Во-вторых, тут надо по сути переприсвоить значения соседних элементов, если я правильно понял.

A[i], A[i+1] = A[i+1], A[i]

Ну и так смещаться через 2 индекса дальше



———————————————————————————
Мой блог о семействе *nix: http://nixtravelling.blogspot.com/

Офлайн

#3 Фев. 4, 2014 17:38:09

PanovSergey
От: Екатеринбург
Зарегистрирован: 2013-12-29
Сообщения: 269
Репутация: +  19  -
Профиль   Адрес электронной почты  

помогите врубиться в эти массивы на Python

Синтаксис для 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


Отредактировано PanovSergey (Фев. 4, 2014 18:26:44)

Офлайн

#4 Фев. 4, 2014 21:16:03

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

помогите врубиться в эти массивы на Python

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



Офлайн

#5 Фев. 4, 2014 21:22:42

PanovSergey
От: Екатеринбург
Зарегистрирован: 2013-12-29
Сообщения: 269
Репутация: +  19  -
Профиль   Адрес электронной почты  

помогите врубиться в эти массивы на Python

Блин вы же взрослый человек. Чем поможет топикстартеру, если сейчас все через itertools написать? Понятно что на нечетных работать в лоб не будет. дайте человеку хоть чутка подумать.

Отредактировано PanovSergey (Фев. 4, 2014 21:32:03)

Офлайн

#6 Фев. 8, 2014 00:16:13

bs0d
Зарегистрирован: 2014-02-01
Сообщения: 76
Репутация: +  2  -
Профиль   Отправить e-mail  

помогите врубиться в эти массивы на Python

py.user.next ну так можно еще на стадии ввода проверить

while True:
	n = int(input())
	n = n % 2
	if n==0:
		break
	else:
		print('введите четное число элементов')

Офлайн

#7 Фев. 8, 2014 01:25:55

Rodegast
От: Пятигорск
Зарегистрирован: 2007-12-28
Сообщения: 2843
Репутация: +  186  -
Профиль   Отправить e-mail  

помогите врубиться в эти массивы на Python

s=range(10); s2=[]
map(lambda (x,y): (s2.append(x),s2.append(y)),zip(s[1::2],s[::2]))
print s2



С дураками и сектантами не спорю, истину не ищу.
Ели кому-то правда не нравится, то заранее извиняюсь.

Отредактировано Rodegast (Фев. 8, 2014 01:41:37)

Офлайн

#8 Фев. 8, 2014 23:37:52

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

помогите врубиться в эти массивы на Python

bs0d
py.user.next ну так можно еще на стадии ввода проверить
минимум должен быть таким, чтобы работало и для чётного количества, и для нечётного



Отредактировано py.user.next (Фев. 8, 2014 23:38:32)

Офлайн

#9 Фев. 10, 2014 12:56:10

Virus-Hunter
Зарегистрирован: 2014-02-04
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите врубиться в эти массивы на Python

Всем привет. Спасибо за ваши советы От Души Прям!!! Вот мой вариант на основе ваших предложений и он вроде как работает!

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)

Офлайн

#10 Фев. 10, 2014 12:57:22

Virus-Hunter
Зарегистрирован: 2014-02-04
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

помогите врубиться в эти массивы на Python

Хрень получилась. Как вы выводите так красиво сообщения на форуме?

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version