从字典中的列表中删除方括号和逗号

我是一名初级程序员,我不知道如何从我从带有列表的字典中取出的值中删除括号和逗号。我错过了什么?


据我所知,for 循环通常会删除它们,但现在不会这样做。


简化代码:


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: \n" + str(v).title() + "\n")

    elif len(v) < 1 :

        print(str(k).title() + " does not have a favorite language")


森林海
浏览 279回答 2
2回答

长风秋雁

使用join和map:dict = {&nbsp; &nbsp; 'name1': ['python', 'c', 'java'],&nbsp; &nbsp; 'name2': ['c.'],&nbsp; &nbsp; 'name3': ['ruby', 'go'],&nbsp; &nbsp; 'name4': ['javascript', 'python'],&nbsp; &nbsp; 'name5': [],&nbsp; &nbsp; }for k, v in dict.items():&nbsp; &nbsp; if len(v) == 1:&nbsp; &nbsp; &nbsp; &nbsp; print(str(k).title() + "'s favorite language is " + ', '.join(map(str.title, v)) + "\n")&nbsp; &nbsp; elif len(v) > 1:&nbsp; &nbsp; &nbsp; &nbsp; print(str(k).title() + "'s favorite languages are: \n" + ', '.join(map(str.title, v)) + "\n")&nbsp; &nbsp; elif len(v) < 1 :&nbsp; &nbsp; &nbsp; &nbsp; print(str(k).title() + " does not have a favorite language")输出Name3's favorite languages are:&nbsp;Ruby, GoName5 does not have a favorite languageName2's favorite language is C.Name4's favorite languages are:&nbsp;Javascript, PythonName1's favorite languages are:&nbsp;Python, C, Java这个想法是应用于str.title值列表中的每个字符串(使用 map),然后通过逗号和空格 ( ', ')连接这些字符串。请注意,您可以更改联接的字符串以满足您的需要。

蓝山帝景

虽然 Daniel 的回答更加优雅和完整,但我想解决您的问题,即为什么 'for' 函数没有拆分语言名称(删除“,”和“]”)。代码中的第一个“for”函数遍历字典。如果您只想使用“for”函数,则需要为每个人的条目再次重用它以分隔语言。喜欢下面的代码示例。dict = {&nbsp;'name1': ['python', 'c', 'java'],'name2': ['c.'],'name3': ['ruby', 'go'],'name4': ['javascript', 'python'],'name5': [],}for k, v in dict.items():&nbsp; &nbsp; if len(v) ==&nbsp; 1:&nbsp; &nbsp; &nbsp; &nbsp;&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; print(str(k).title() + "'s favorite language is " + str(v).title() + "\n")&nbsp; &nbsp; elif len(v) > 1:&nbsp; &nbsp; &nbsp; &nbsp; print(str(k).title() + "'s favorite languages are:")&nbsp; &nbsp; &nbsp; &nbsp; for language in v:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; print(language + ", ")&nbsp; &nbsp; &nbsp; &nbsp; print("")&nbsp; &nbsp; elif len(v) < 1 :&nbsp; &nbsp; &nbsp; &nbsp; print(str(k).title() + " does not have a favorite language")
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python