如何从字典的输出中删除括号

时间:2019-09-30 20:15:20

标签: python

在输出中,值用方括号打印如何删除?

Test= {'Python':['classes','labs','tutorial'], 'Math': 
('classes','tutorial'), 'Java':['classes',{'labs':['corejava','adv 
java']}]}

for subject, details in Test.items(): 
     print(subject, "->", details)


print("after updating...")   

Test2 = {'Math':('classes','tutorial','labs')}
Test.update(Test2)
for subject, details in Test.items(): 
    print(subject, "->", details) 

2 个答案:

答案 0 :(得分:0)

对于这种特殊情况,我将按照以下方式处理:

Test= {'Python':['classes','labs','tutorial'], 'Math': 
('classes','tutorial'), 'Java':['classes',{'labs':['corejava','adv java']}]}

for subject, details in Test.items(): 
     print(subject, "->", details)


print("after updating...")   

Test2 = {'Math':('classes','tutorial','labs')}
Test.update(Test2)
for subject, details in Test.items(): 
    try:
        print(subject, "->", ' '.join(details)) 
    except TypeError:
        print(subject, "->", ''.join(details[0]),''.join(list(details[1])),' '.join(details[1]['labs']))

输出:

Python -> ['classes', 'labs', 'tutorial']
Math -> ('classes', 'tutorial')
Java -> ['classes', {'labs': ['corejava', 'adv java']}]
after updating...
Python -> classes labs tutorial
Math -> classes tutorial labs
Java -> classes labs corejava adv java

如何

您将看到括号中的值,因为这是lists的显示方式,而tuples则在括号之间显示。如果要消除列表,则可以单独打印每个值并将其附加到字符串中,也可以将整个列表变成一个大字符串并消除括号。 在最后三行中,我添加了以下内容:

for subject, details in Test.items(): 
    print(subject, "->", details)
    print(type(details)) 

这是我之前谈到的输出结果:

Python -> ['classes', 'labs', 'tutorial']
<class 'list'>
Math -> ('classes', 'tutorial', 'labs')
<class 'tuple'>
Java -> ['classes', {'labs': ['corejava', 'adv java']}]
<class 'list'>

答案 1 :(得分:0)

如果您不需要任何括号,则可以遍历各个键并进行打印。这是选项之一

Test= {'Python':['classes','labs','tutorial'], 'Math':  ('classes','tutorial'), 'Java':['classes',{'labs':['corejava','adv java']}]}

for subject, details in Test.items():
    print('\n'+ subject, "->", end=' ')
    for details in details:
        if( isinstance(details,dict)):
            for subject, details in details.items():
                print('\n'+ subject, "->", end=' ')
                if(isinstance(details,dict)):
                    for subject, details in details.items():
                        print('\n'+ subject, "->", end=' ')
                        print(' '.join(details))
                else:
                    print(' '.join(details))
        else:
            print(details, end=' ')

更新:已考虑内部禁忌