2 回答

TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超7個(gè)贊
使用join和map:
dict = {
'name1': ['python', 'c', 'java'],
'name2': ['c.'],
'name3': ['ruby', 'go'],
'name4': ['javascript', 'python'],
'name5': [],
}
for k, v in dict.items():
if len(v) == 1:
print(str(k).title() + "'s favorite language is " + ', '.join(map(str.title, v)) + "\n")
elif len(v) > 1:
print(str(k).title() + "'s favorite languages are: \n" + ', '.join(map(str.title, v)) + "\n")
elif len(v) < 1 :
print(str(k).title() + " does not have a favorite language")
輸出
Name3's favorite languages are:
Ruby, Go
Name5 does not have a favorite language
Name2's favorite language is C.
Name4's favorite languages are:
Javascript, Python
Name1's favorite languages are:
Python, C, Java
這個(gè)想法是應(yīng)用于str.title值列表中的每個(gè)字符串(使用 map),然后通過逗號(hào)和空格 ( ', ')連接這些字符串。請(qǐng)注意,您可以更改聯(lián)接的字符串以滿足您的需要。

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
雖然 Daniel 的回答更加優(yōu)雅和完整,但我想解決您的問題,即為什么 'for' 函數(shù)沒有拆分語言名稱(刪除“,”和“]”)。代碼中的第一個(gè)“for”函數(shù)遍歷字典。如果您只想使用“for”函數(shù),則需要為每個(gè)人的條目再次重用它以分隔語言。喜歡下面的代碼示例。
dict = {
'name1': ['python', 'c', 'java'],
'name2': ['c.'],
'name3': ['ruby', 'go'],
'name4': ['javascript', 'python'],
'name5': [],
}
for k, v in dict.items():
if len(v) == 1:
print(str(k).title() + "'s favorite language is " + str(v).title() + "\n")
elif len(v) > 1:
print(str(k).title() + "'s favorite languages are:")
for language in v:
print(language + ", ")
print("")
elif len(v) < 1 :
print(str(k).title() + " does not have a favorite language")
添加回答
舉報(bào)