如何在python 3.6中使用f-string进行字典格式?

时间:2017-04-19 06:33:42

标签: python dictionary format f-string

如何使用python 3.6 F-String执行此格式?

DisplayMetrics displaymetrics = new DisplayMetrics();
mContext.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int screenWidth = displaymetrics.widthPixels;
int screenHeight = displaymetrics.heightPixels;

6 个答案:

答案 0 :(得分:15)

嗯,需要字典键的引用。

f'My name {person["name"]} and my age {person["age"]}'

答案 1 :(得分:6)

根据字典对给定字符串的贡献数量,您可以考虑使用.format(**dict)来使其更具可读性,即使它没有f字符串的简洁优雅。

>>> person = {'name': 'Jenne', 'age': 23}
>>> print('My name is {name} and my age is {age}.'.format(**person))

My name is Jenne and my age is 23.

虽然这个选项是情境化的,但您可能希望避免引用报价和双引号

答案 2 :(得分:1)

下面的语句均适用于python 3.6及更高版本

  1. print(f'我的名字{person [“ name”]}}和我的年龄{person [“ age”]}')
  2. print(f“我的名字{person ['name']}和我的年龄{person ['age']}”“)

请注意上述语句中的单引号和双引号,因为将它们放在错误的位置会导致语法错误

答案 3 :(得分:0)

这样可行。

f'My name {person["name"]} and my age {person["age"]}'

如果name属于objf'name is {obj[name]}'的属性,但对于此问题中的字典,您可以直接访问密钥f'name is {person["name"]}'

答案 4 :(得分:0)

编辑:混淆旧的格式功能和新的f-stings。补充说明。

发布的字符串pkuphy是正确的,您必须使用引号来访问字典:

f'My name {person["name"]} and my age {person["age"]}'

您的原始字符串适用于str.format() - 函数:

>>> person = {'name': 'Jenne', 'age': 23}
>>> print('My name is {person[name]} and my age is {person[age]}.'.format(person=person))

My name is Jenne and my age is 23.

第一个person引用格式字符串中的所有出现,第二个给出要填充的变量。

答案 5 :(得分:0)

您只有一个对象,这无助于了解事物的工作方式。让我们来构建一个更完整的示例。

person0 = {'name': 'Jenne', 'age': 23}
person1 = {'name': 'Jake', 'age': 29}
person2 = {'name': 'John', 'age': 31}
places = ['Naples', 'Marrakech', 'Cape Town']

print('''My name {0[name]} and my age {0[age]}, 
your name {1[name]} and your age {1[age]}, 
my favourite place {3[0]}'''.format(person0, person1, person2, places))

您还可以从参数列表中访问完整的对象,例如

print('{2}'.format(person0, person1, person2, places))

或选择属性,甚至是级联:

print('{3.__class__.__name__}'.format(person0, person1, person2, places))