Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 27, 2020 14:26:57

DuffyDuck
Зарегистрирован: 2020-09-07
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

if else в генераторе списков

 w = ['анна', 'михаил', 'глеб', 100, 2.5]
q = [i.title() if isinstance(i, str) else i in w for i in w]
print(q)

Как правильно получить список с именами с заглавной буквы и числами?
Вывод мне возвращает не мои числа а True, True:
 ['Анна', 'Михаил', 'Глеб', True, True]

Офлайн

#2 Ноя. 27, 2020 14:37:11

rami
Зарегистрирован: 2018-01-08
Сообщения: 281
Репутация: +  72  -
Профиль   Отправить e-mail  

if else в генераторе списков

 q = [i.title() if isinstance(i, str) else i for i in w]

Офлайн

#3 Ноя. 27, 2020 14:48:55

DuffyDuck
Зарегистрирован: 2020-09-07
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

if else в генераторе списков

rami
Спасибо!

Офлайн

#4 Ноя. 27, 2020 22:21:19

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

if else в генераторе списков

Способ не лучше, просто для информации

  
>>> lst = ['анна', 'михаил', 'глеб', 100, 2.5]
>>> 
>>> out = [(isinstance(i, str) and i.title()) or i for i in lst]
>>> out
['Анна', 'Михаил', 'Глеб', 100, 2.5]
>>>



Отредактировано py.user.next (Ноя. 27, 2020 22:22:24)

Офлайн

#5 Ноя. 30, 2020 13:26:36

DuffyDuck
Зарегистрирован: 2020-09-07
Сообщения: 22
Репутация: +  0  -
Профиль   Отправить e-mail  

if else в генераторе списков

py.user.next
Способ не лучше, просто для информации
Спасибо!

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version