如何在 Python 3 .6 中使用 f 字符串创建字典格式?
How can I do a dictionary format with f-string in Python 3 .6?
如何使用 Python 3.6 F 弦来实现这种格式?
person = {'name': 'Jenne', 'age': 23}
print('My name {0[name]} and my age {1[age]}'.format(person, person))
print('My name {0} and my age {1}'.format(person['name'], person['age']))
这会起作用。
f'My name {person["name"]} and my age {person["age"]}'
如果name
是obj
、f'name is {obj[name]}'
的属性,但是对于这个问题中的字典,你可以直接访问键f'name is {person["name"]}'
.
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
引用格式字符串中所有出现的地方,第二个给出要填写的变量。
嗯,需要引述字典键。
f'My name {person["name"]} and my age {person["age"]}'
根据您的词典对给定字符串的贡献数量,您可能会考虑使用 .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.
虽然此选项视情况而定,但您可能希望避免引号和双引号的混乱。
以下两个语句都适用于 Python 3.6 以后的版本:
print(f'My name {person["name"]} and my age {person["age"]}')
print(f"My name {person['name']} and my age {person['age']}")
请注意上述语句中的单引号'
和双引号"
,因为放置错误会导致语法错误。
你只有一个对象,这无助于理解事物的运作方式。让我们构建一个更完整的示例。
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))
或select属性,甚至级联:
print('{3.__class__.__name__}'.format(person0, person1, person2, places))
无需手动键入键即可使用 f 字符串快速对字典进行字符串化
我一直在寻找一个简单的解决方案,以便使字典键值对成为一个简单的对,而无需挖掘字典的每个键。
person = {'name': 'Jenne', 'age': 23}
stringified_dict = ' '.join([f'{k.capitalize()} {v}' for k,v in person.items()])
print(f'In a Variable --> {stringified_dict}')
# function
def stringify_dict(dict_val:dict) -> str:
return ' '.join([f'{k.capitalize()} {v}' for k,v in dict_val.items()])
stringified_dict = stringify_dict({'name': 'Jenne', 'age': 23})
print(f'Using Function --> {stringified_dict}')
# lambda
stringify_dict = lambda dict_val: ' '.join([f'{k.capitalize()} {v}' for k,v in dict_val.items()])
stringified_dict = stringify_dict({'name': 'Jenne', 'age': 23})
print(f'Using Lambda --> {stringified_dict}')
输出
In a Variable --> Name Jenne Age 23
Using Function --> Name Jenne Age 23
Using Lambda --> Name Jenne Age 23
如何使用 Python 3.6 F 弦来实现这种格式?
person = {'name': 'Jenne', 'age': 23}
print('My name {0[name]} and my age {1[age]}'.format(person, person))
print('My name {0} and my age {1}'.format(person['name'], person['age']))
这会起作用。
f'My name {person["name"]} and my age {person["age"]}'
如果name
是obj
、f'name is {obj[name]}'
的属性,但是对于这个问题中的字典,你可以直接访问键f'name is {person["name"]}'
.
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
引用格式字符串中所有出现的地方,第二个给出要填写的变量。
嗯,需要引述字典键。
f'My name {person["name"]} and my age {person["age"]}'
根据您的词典对给定字符串的贡献数量,您可能会考虑使用 .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.
虽然此选项视情况而定,但您可能希望避免引号和双引号的混乱。
以下两个语句都适用于 Python 3.6 以后的版本:
print(f'My name {person["name"]} and my age {person["age"]}')
print(f"My name {person['name']} and my age {person['age']}")
请注意上述语句中的单引号'
和双引号"
,因为放置错误会导致语法错误。
你只有一个对象,这无助于理解事物的运作方式。让我们构建一个更完整的示例。
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))
或select属性,甚至级联:
print('{3.__class__.__name__}'.format(person0, person1, person2, places))
无需手动键入键即可使用 f 字符串快速对字典进行字符串化
我一直在寻找一个简单的解决方案,以便使字典键值对成为一个简单的对,而无需挖掘字典的每个键。
person = {'name': 'Jenne', 'age': 23}
stringified_dict = ' '.join([f'{k.capitalize()} {v}' for k,v in person.items()])
print(f'In a Variable --> {stringified_dict}')
# function
def stringify_dict(dict_val:dict) -> str:
return ' '.join([f'{k.capitalize()} {v}' for k,v in dict_val.items()])
stringified_dict = stringify_dict({'name': 'Jenne', 'age': 23})
print(f'Using Function --> {stringified_dict}')
# lambda
stringify_dict = lambda dict_val: ' '.join([f'{k.capitalize()} {v}' for k,v in dict_val.items()])
stringified_dict = stringify_dict({'name': 'Jenne', 'age': 23})
print(f'Using Lambda --> {stringified_dict}')
输出
In a Variable --> Name Jenne Age 23
Using Function --> Name Jenne Age 23
Using Lambda --> Name Jenne Age 23