2012-01-10 2 views
1

говорят, что у меня есть список чисел [122,423,134], и я хотел изменить отдельные элементы так, чтобы они были [221,324,431]. Как бы это сделать в python? reverse (list) и list.reverse() отменяет только порядок элементов. Наверное, что-то тривиальное, я уверен. Спасибо за помощь.python назад списки

+0

Спасибо за помощь! – quantumdisaster

ответ

12
In [1]: l = [122,423,134] 

In [2]: [int(str(val)[::-1]) for val in l] 
Out[2]: [221, 324, 431] 

Здесь str(val) преобразует элемент в строку, [::-1] реверсирует строку, и int() преобразует результат в целое число.

+2

+1 Мне нравится ваше решение лучше –

2
>>> _list=[122,423,134] 
>>> _list=[int("".join(reversed(str(i)))) for i in _list] 
>>> _list 
[221, 324, 431] 

другое решение:

>>> def reverse_number(i): 
...  i=str(i) 
...  i=i[::-1] 
...  i=int(i) 
...  return i 
... 
>>> _list=[122,423,134] 
>>> map(reverse_number,_list) 
[221, 324, 431] 
or 
>>>> [reverse_number(i) for i in _list] 
0

Вы можете использовать либо карту или список compahension превратить каждый элемент списка. Учитывая функцию с именем XForm вы можете сделать:

newlist = map(xform, oldlist) 

Или:

newlist = [xform(a) for a in oldlist] 

Теперь вам просто нужно написать функцию XFORM.

def decimalreverse(i): 
    l = reversed(str(i)) 
    return int(''.join(l))