2017-04-19 18 views

回答

9

那麼,一個需要字典鍵的報價。

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

+0

只需使用整個字符串和項目之間的不同引號。如果用雙引號引用該字符串,則爲鍵使用單引號。在python中,單引號和雙引號都起着相同的作用。 –

+0

謝謝 那是什麼? print('我的名字是{姓名},我的年齡是{年齡},我的薪水是{salary}。'format(** person)) –

+2

這是'str.format()'方法, f-string和str.format是如何執行索引查找的,因爲你必須引用'f-string'中的字典中的鍵,但是會自動從索引值轉換爲'str.format()'中的字符串。 –

1

這會奏效。

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

如果nameobjf'name is {obj[name]}'的屬性,但對於一個字典作爲這個問題,你可以直接訪問關鍵f'name is {person["name"]}'

+0

錯誤所以這就是爲什麼我問:f'My名{人[名]}和我的年齡{person [age]}' NameError:名稱'name'未定義 –

+0

我已更新我的答案,此作品。 – pkuphy

+0

謝謝你得到它 –

1

編輯:混淆舊的格式功能和新的f-stings。補充說明。

發佈的字符串pkuphy是正確的,你必須使用引號來訪問詞典:

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

你的原始字符串作品爲str.format() -function:

>>> 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引用所有發生的格式字符串,第二個給變量填寫。

0

根據繳款你的字典,使給定的字符串的數量,您可以考慮使用.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. 

雖然這個選項是情境,你可能會喜歡避免報價的咆哮起來,雙引號

+0

問題是關於Python 3.6 f-字符串的明確說明,而你清楚地解釋你的答案,這不是關於什麼被問到的。 – jpoppe

+0

真的夠了,我寫了這個評論,最近在我的一些工作中放了一個f字符串,就像這樣:'f'some text {mydict ['mydumbmistake']} more text'' vs'f'some text {mydict [這件作品更多的文字和視覺上的錯誤很難讓我發現(也許我只是垃圾),所以像我一樣愛着琴絃,它的一個地方,舊式的腳感更強,而且機會更少像我這樣的小笨蛋製造另一個錯誤。 –