为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

森林海 2021-09-11 10:17:57
我是一名初级程序员,我不知道如何从我从带有列表的字典中取出的值中删除括号和逗号。我错过了什么?据我所知,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")
查看完整描述

2 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

使用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

这个想法是应用于str.title值列表中的每个字符串(使用 map),然后通过逗号和空格 ( ', ')连接这些字符串。请注意,您可以更改联接的字符串以满足您的需要。


查看完整回答
反对 回复 2021-09-11
?
蓝山帝景

TA贡献1843条经验 获得超7个赞

虽然 Daniel 的回答更加优雅和完整,但我想解决您的问题,即为什么 'for' 函数没有拆分语言名称(删除“,”和“]”)。代码中的第一个“for”函数遍历字典。如果您只想使用“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:")

        for language in v:

            print(language + ", ")

        print("")

    elif len(v) < 1 :

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


查看完整回答
反对 回复 2021-09-11
  • 2 回答
  • 0 关注
  • 278 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号