Найти - Пользователи
Полная версия: Как применить функцию для определенных элементов списка
Начало » Python для новичков » Как применить функцию для определенных элементов списка
1
Xion
Можно применить функцию для всех элементов:
list = map(func, list)

Но как применить функцию допустим к 2м элементам
Для примера список:
[['1','2','3','4'],['1','2','3','4'],['1','2','3','4']]
Как применить int() к первым 2м элементам каждого списка в этом списке? (То есть к ‘1’ и ‘2’)?
py.user.next
>>> lst = [['1', '2', '3', '4'],
...        ['5', '6', '7', '8'],
...        ['9', '10', '11', '12']]
>>> 
>>> out = [[i.index(j) >= 2 and j or int(j) for j in i] for i in lst]
>>> out
[[1, 2, '3', '4'], [5, 6, '7', '8'], [9, 10, '11', '12']]
>>>
Xion
Спасибо, с помощью вашего ответа я нашел чуть более наглядное решение:
lst = [['1', '2', '3', '4'],
        ['5', '6', '7', '8'],
       ['9', '10', '11', '12']]
 
out = [[int(j) if i.index(j)<=1 else j for j in i] for i in lst]
print(out)
[[1, 2, '3', '4'], [5, 6, '7', '8'], [9, 10, '11', '12']]
пока результаты and и or для меня пока не очевидны
прочитав о них я конечно понимаю как они работают, но потом быстро забывается, так как их действие крайне не очевидное, возможно даже уникальное среди языков программирования
py.user.next
Xion
возможно даже уникальное среди языков программирования
Не, это поведение известно ещё с lisp'а.
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