Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 25, 2020 03:09:27

yjdbxjr
Зарегистрирован: 2020-10-25
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

не понимаю в чем ошибка

помогите разобраться, почему не выводиться список с заглавными буквами
names=
names.append('виктория')
names.append('алексей')
names.append('максим')
names.append('кирилл')
names.append('галина')
names.append('татьяна')
print (names.title())
и выдает ошибку
print (names.title())
AttributeError: ‘list’ object has no attribute ‘title’
а если указывать по одному значению, то буква становится заглавной
print(names.title())
Виктория

Офлайн

#2 Окт. 25, 2020 03:25:43

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

не понимаю в чем ошибка

Потому что метод title() - это метод строки. А у списка вообще другие методы.

  
>>> 'abc'.title()
'Abc'
>>> ['a', 'b', 'c'].index('b')
1
>>>

  
>>> names = []
>>> names.append('виктория')
>>> names.append('алексей')
>>> names.append('максим')
>>> names.append('кирилл')
>>> names.append('галина')
>>> names.append('татьяна')
>>> [name.title() for name in names]
['Виктория', 'Алексей', 'Максим', 'Кирилл', 'Галина', 'Татьяна']
>>>

  
>>> names
['виктория', 'алексей', 'максим', 'кирилл', 'галина', 'татьяна']
>>> list(map(str.title, names))
['Виктория', 'Алексей', 'Максим', 'Кирилл', 'Галина', 'Татьяна']
>>>



Офлайн

#3 Окт. 25, 2020 07:24:39

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

не понимаю в чем ошибка

yjdbxjr
а если указывать по одному значению, то буква становится заглавной
А как вы узнали что не становится?
При печати списка будет
 print(["a","b"])
["a","b"]
Заглавная должна быть первая буква - скобка. Логично? А заглавная скобка это по прежнему скобка. И вы не узнаете стала она заглавной или нет.

Язык питон как любой другой ЯП устроен логично. Но глупо думать что это ваша логика. Это логика разработчиков. То что вам удобно сию секунду может быть неудобно десяткам тысячь людей в других ситуациях.

Вот вы хотите похоже чтобы метод примененный к списку применялся к его элементам?

Вот есть метод списка append
 a =[1,2]
a.append(3)
print(a)
[1,2,3]
[1,[1,2]].append(3) # Что тут должно получиться? [1,[1,2],3] или [1,[1,2,3],3] ?
# А если мне надо получить [1,[1,2],3] То как это  сделать если принять второе поведение?
[1,{}].append(3) # А это как должно работать? К словарю append неприменим. Должен быть exception или просто пропустить элемент?
Те если бы было то как вы хотите то это приведет к возникновению огромной кучи неочевидных правил и невозможности получить тривиальные результаты.

Ответа почему оно себя так ведет нету. Оно ведет так как ведет (как и все в природе). Ответ на вопрос почему это лично ваш способ уложить в вашей голове это поведение в некий свод правил. Способ укладки у авторов языка был свой. Не факт что он будет вам удобен.



Отредактировано doza_and (Окт. 25, 2020 07:27:14)

Офлайн

#4 Окт. 29, 2020 00:14:34

yjdbxjr
Зарегистрирован: 2020-10-25
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

не понимаю в чем ошибка

Спасибо большое. Теперь понятно.

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version