Найти - Пользователи
Полная версия: не понимаю в чем ошибка
Начало » Python для новичков » не понимаю в чем ошибка
1
yjdbxjr
помогите разобраться, почему не выводиться список с заглавными буквами
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())
Виктория
py.user.next
Потому что метод 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))
['Виктория', 'Алексей', 'Максим', 'Кирилл', 'Галина', 'Татьяна']
>>>
doza_and
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 или просто пропустить элемент?
Те если бы было то как вы хотите то это приведет к возникновению огромной кучи неочевидных правил и невозможности получить тривиальные результаты.

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

yjdbxjr
Спасибо большое. Теперь понятно.
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