在Python中使用 format() 格式化容器
让我们看看如何使用Python中的format()方法格式化通过 __getitem__ 或 getattr() 访问的容器。
访问支持 __getitem__ 的容器
a) 对于字典
Python3
# creating a dictionary
founder = {'Apple': 'Steve Jobs', 'Microsoft': 'Bill Gates'}
# formatting
print('{f[Microsoft]} {f[Apple]}'.format(f = founder))
Python3
# creating a list
list_items = [1, 3, 5, 7, 9, 11]
# formatting
print('{l[3]} {l[5]}'.format(l = list_items))
Python3
# creating a class
class Program(object):
language = 'Python'
# formatting
print('{p.language}'.format(p = Program()))
Python3
# creating a clas
class Program(object):
language = 'Python'
# creating a dictionary
versions = [{'version': '1'}, {'version': '2'}, {'version': '3'}]
# formatting
print('{p.language}: {p.versions[2][version]}'.format(p = Program()))
输出 :
Bill Gates Steve Jobs
f[Microsoft] 被比尔盖茨取代,f[Apple] 被史蒂夫乔布斯取代。
b) 对于列表
Python3
# creating a list
list_items = [1, 3, 5, 7, 9, 11]
# formatting
print('{l[3]} {l[5]}'.format(l = list_items))
输出 :
7 11
访问支持 getattr() 的对象的属性
a) 对于班级
Python3
# creating a class
class Program(object):
language = 'Python'
# formatting
print('{p.language}'.format(p = Program()))
输出 :
Python
p.language 被Python取代,因为 language 是 Program 的一个属性
访问嵌套结构
Python3
# creating a clas
class Program(object):
language = 'Python'
# creating a dictionary
versions = [{'version': '1'}, {'version': '2'}, {'version': '3'}]
# formatting
print('{p.language}: {p.versions[2][version]}'.format(p = Program()))
输出 :
Python: 3