Форум сайта python.su
1. Дан номер месяца (1 — январь, 2 — февраль, …). Вывести название соответствующего времени года (“winter”, “spring”, “autumn”, “summer”)
2. Дан одномерный массив числовых значений, насчитывающий N элементов. Поменять местами элементы, стоящие на чётных и нечётных местах: А(1) с А(2), А (3) с А(4)
Офлайн
>>> a = range(20)
>>>
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> for x in xrange(0,len(a),2):
... a[x],a[x+1] = a[x+1],a[x]
...
>>> a
[1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14, 17, 16, 19, 18]
>>>
Офлайн
Спасибо sp3! На счёт первой разобрался))
Офлайн
та же задача, только чтобы массив вводился с клавиатуры, как это сделать??
Офлайн
gnombdsm? использовать input или raw_input
Офлайн
это в принципе не важно
Офлайн
sp3Этот код даст ошибку при нечетной длине спискаостальное сам>>> a = range(20)
>>>
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> for x in xrange(0,len(a),2):
... a[x],a[x+1] = a[x+1],a[x]
...
>>> a
[1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14, 17, 16, 19, 18]
>>>
>>> a=range(21) >>> for x in xrange(0, len(a),2): a[x],a[x+1]=a[x+1],a[x] Traceback (most recent call last): File "<pyshell#3>", line 2, in <module> a[x],a[x+1]=a[x+1],a[x] IndexError: list index out of range >>>
>>> a,result=range(21),[] >>> for x in map(None,a[1::2],a[::2]): if x[0]: result+=x else: result.append(x[1]) >>> result [1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14, 17, 16, 19, 18, 20]
Офлайн
seasons=['winter','spring','summer','autumn'] num_months=range(1,13) num_months.insert(0,num_months.pop(-1)) for i in range(1,13): print i,'-->', seasons[num_months.index(i)/3] 1 --> winter 2 --> winter 3 --> spring 4 --> spring 5 --> spring 6 --> summer 7 --> summer 8 --> summer 9 --> autumn 10 --> autumn 11 --> autumn 12 --> winter
Офлайн
FishHook
Предлагаю несколько модифицировать>>> a,result=range(21),[] >>> for x in map(None,a[1::2],a[::2]): if x[0]: result+=x else: result.append(x[1]) >>> result [1, 0, 3, 2, 5, 4, 7, 6, 9, 8, 11, 10, 13, 12, 15, 14, 17, 16, 19, 18, 20]
Предлагаю просто проверять элемент на чётность:for x in map(None,a[1::2],a[::2]):
TypeError: 'NoneType' object is not callable
line,result = range(22),[] for x in line: if x % 2 == 0: result.append(x+1) else: result.append(x-1) print(result)
Отредактировано alekzp (Июль 1, 2012 20:44:55)
Офлайн
>>> a = [1,2,3,4,5] >>> b = [6,7,8,9,10] >>> map(None, a, b) [(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)] >>> zip(a, b) [(1, 6), (2, 7), (3, 8), (4, 9), (5, 10)]
Офлайн