Форум сайта python.su
0
Задача такая из готового списка брать элементы с четными и нечетными номерами, в зависимости от четности прибавлять или отнимать 1, создать новый список с измененными значениями.
я сделал так:
i = 0 a = [] e = [1,2,3,4,5,6,7] m = len(e) while i < m: i+=1 if i%2 == 0: w = e[i]+1 a.insert(i, w) else: w = e[i]-1 a.insert(i, w) print a
i = 0 a = [] e = [1,2,3,4,5,6,7] m = len(e) while i < m: i+=1 if i%2 == 0: w = +1 a.insert(i, w) else: w = -1 a.insert(i, w) print a
Офлайн
18
>>> e = [1,2,3,4,5,6,7] >>> out = [] ... for index,item in enumerate(e): ... item += 1 if index%2 else -1 ... out.append(item) ... ... print out [0, 3, 2, 5, 4, 7, 6]
Офлайн
0
А если действия совершаемые над элементами списка будут посложнее, например сложить i-й и i+1 элементы, а при нечетных сложить i-й и i-1 ?
Отредактировано jeka7 (Окт. 20, 2012 15:53:07)
Офлайн
43
ls = [1,2,3,4,5,6,7] [elt+1 if idx%2 else elt-1 for idx,elt in enumerate(ls)] Out[2]: [0, 3, 2, 5, 4, 7, 6] [ls[idx] + ls[idx+1] if idx%2 else ls[idx] + ls[idx-1] for idx, elt in enumerate(ls)] Out[3]: [8, 5, 5, 9, 9, 13, 13]
Офлайн
0
sergeek, напиши пожфлуйста в общем виде. Ну к примеру если я буду выполнять действия с большим числим элементов, а не с двумя, хочу понять принцип. новичек, что сказать)
Офлайн
0
e =
l =
for i in e:
if i%2 ==0: l.append(i+1)
else: l.append(i-1)
print(l)
Офлайн
43
Офлайн