Найти - Пользователи
Полная версия: Метод format
Начало » Python для новичков » Метод format
1 2
roggerg
Всем привет.
В книге Лунц М. “Изучаем питон” , на стр. 240 есть такой пример
 somelist = list('SPAM')
'first={0[0]}, third={0[2]}'.format(somelist)
Но я не где не нашел обьяснения что означает первый ноль,

понятно что идет обращение к индексу в списке но почему это сделано так а не так например

 first={somelist[0]}




,
py.user.next
roggerg
Но я не где не нашел обьяснения что означает первый ноль в выражении
python.org. format
marvellik
я тоже не понял что это дает
 somelist = list('SPAM')
'first={0}, third={0}'.format(somelist)
first=['S', 'P', 'A', 'M'], third=['S', 'P', 'A', 'M']
ведь аргумент то всего один это список somelist и больше ничего и кроме вывода этого списка ничего не получиться. вот если его распаковать то можно получать аргументы формат элементы списка по индексу
 somelist = list('SPAM')
print('first={0}, third={2}'.format(*somelist))
first=S, third=A
doza_and
marvellik
я тоже не понял что это дает
Т.Е. вы считаете что способ примененный в языке необоснован?
Но тогда чтобы пояснить вашу мысль напишите

делалось так
 'first={0}, third={1}'.format(somelist[0],somelist[1])
хочу так:
 somelist=[1,2,3]
f'first={somelist[0]}, third={somelist[1]}'
чтобы было понятно что вам непонятно.
py.user.next
marvellik
я тоже не понял что это дает
Он просто вставил без тегов кода. А когда вставляешь без тегов кода, форум удаляет квадратные скобки (думает, что это теги какие-то). Поэтому он вставлял одно рабочее, а получилось другое тоже рабочее.
marvellik
doza_and
doza_and
я из вопроса автора исходил о непонятках где написан такой вариант ‘first={0}, third={0}’.format(somelist). ваш варианты совершенно понятны когда аргументами являются элементы списка взятые по индексу
roggerg
Я поправил код, т.к. он был неправильно оформлен.
Вопрос осталься в силе.
doza_and
roggerg
Вопрос осталься в силе.
roggerg
но почему это сделано так а не так например
Потому что функция не знает имени объекта который ей передали (общее свойство всех функций питона), поэтому не может знать что его звали somelist
А вот имена переданных ключей она знает поэтому можно сделать:
 'first={somelistX[0]}, third={somelistX[2]}'.format(somelistX=somelist)
Вопрос о неявной интерполяции окружения обсуждается
https://www.python.org/dev/peps/pep-0498/
Но есть и сторонники и много противников.

roggerg
Но я не где не нашел обьяснения что означает первый ноль,
Это номер аргумента метода format
 "{0},{1},{2}".format("a","b","c")
>>> "a,b,c"
py.user.next
doza_and
Вопрос о неявной интерполяции окружения обсуждается
Оно уже реализовано в версии 3.6, которая ещё не вышла.
python.org. 3.6 what's new
doza_and
py.user.next
Оно уже реализовано
Да но вот докустимо его использовать или нет это вопрос. В разных командах по разному. Может быть так что это не будет приветствоваться в том коллективе с которым ТС будет общаться.
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