Python从嵌套列表中按特定顺序格式化和打印数据

Python从嵌套列表中按特定顺序格式化和打印数据,python,list,Python,List,我有一个如下列表: [(6, {3: 3, 4: 3, 7: 2, 1: 3, 11: 2}), (1, {7: 3, 9: 2, 11: 4, 3: 2, 6: 3, 4: 3, 12: 2}), (4, {3: 2, 7: 3, 6: 3, 1: 3, 11: 2, 12: 3}), (2, {9: 4, 8: 2, 10: 2, 5: 2}) 6:Might(1,3,4,7,11) 1:Might(4,6,7) Probably(11) 4:Might(1,3,6,11,12

我有一个如下列表:

[(6, {3: 3, 4: 3, 7: 2, 1: 3, 11: 2}), 
(1, {7: 3, 9: 2, 11: 4, 3: 2, 6: 3, 4: 3, 12: 2}), 
(4, {3: 2, 7: 3, 6: 3, 1: 3, 11: 2, 12: 3}), (2, {9: 4, 8: 2, 10: 2, 5: 2})
 6:Might(1,3,4,7,11) 
 1:Might(4,6,7) Probably(11)
 4:Might(1,3,6,11,12) 
13:
values = [(6, {3: 3, 4: 3, 7: 2, 1: 3, 11: 2}), 
(1, {7: 3, 9: 2, 11: 4, 3: 2, 6: 3, 4: 3, 12: 2}), 
(4, {3: 2, 7: 3, 6: 3, 1: 3, 11: 2, 12: 3}), (2, {9: 4, 8: 2, 10: 2, 5: 2})]
for item in values:
    name = item[0]
    pair_dict = item[1]
    might = []
    probably = []
    for key, value in pair_dict.items():
        if value > 3:
            probably.append(value)
        else:
            might.append(value)
    might = sorted(might)
    probably = sorted(probably)
    print("%s:Might(%s) Probably(%s)" % (name, ','.join(might), ','.join(probably))
我需要格式化并打印它,使它看起来像这样:

[(6, {3: 3, 4: 3, 7: 2, 1: 3, 11: 2}), 
(1, {7: 3, 9: 2, 11: 4, 3: 2, 6: 3, 4: 3, 12: 2}), 
(4, {3: 2, 7: 3, 6: 3, 1: 3, 11: 2, 12: 3}), (2, {9: 4, 8: 2, 10: 2, 5: 2})
 6:Might(1,3,4,7,11) 
 1:Might(4,6,7) Probably(11)
 4:Might(1,3,6,11,12) 
13:
values = [(6, {3: 3, 4: 3, 7: 2, 1: 3, 11: 2}), 
(1, {7: 3, 9: 2, 11: 4, 3: 2, 6: 3, 4: 3, 12: 2}), 
(4, {3: 2, 7: 3, 6: 3, 1: 3, 11: 2, 12: 3}), (2, {9: 4, 8: 2, 10: 2, 5: 2})]
for item in values:
    name = item[0]
    pair_dict = item[1]
    might = []
    probably = []
    for key, value in pair_dict.items():
        if value > 3:
            probably.append(value)
        else:
            might.append(value)
    might = sorted(might)
    probably = sorted(probably)
    print("%s:Might(%s) Probably(%s)" % (name, ','.join(might), ','.join(probably))
我试过这个:

for item in connect_out:
name = item[0]
pair_dict = item[1]
might = []
probably = []
for key, value in pair_dict.items():
    if value > 3:
        probably.append(str(value))
    else:
        might.append(str(value))
might = sorted(might)
probably = sorted(probably)
print("%s:Might(%s) Probably(%s)" % (name, ','.join(might),','(probably)) )
我得到了这个:

    6:Might(2,2,3,3,3) Probably()
    1:Might(2,2,2,3,3,3) Probably(4)
    4:Might(2,2,3,3,3,3) Probably()
   13:Might() Probably()

如果“可能”或“可能”列表中没有任何内容,则不应打印任何标题。我放入了一些print语句,它似乎将冒号后面的数字放在了may列表中,而不是它前面的数字。

在发送到
print()之前,您需要进行一些预处理。
您可以从以下内容开始:

[(6, {3: 3, 4: 3, 7: 2, 1: 3, 11: 2}), 
(1, {7: 3, 9: 2, 11: 4, 3: 2, 6: 3, 4: 3, 12: 2}), 
(4, {3: 2, 7: 3, 6: 3, 1: 3, 11: 2, 12: 3}), (2, {9: 4, 8: 2, 10: 2, 5: 2})
 6:Might(1,3,4,7,11) 
 1:Might(4,6,7) Probably(11)
 4:Might(1,3,6,11,12) 
13:
values = [(6, {3: 3, 4: 3, 7: 2, 1: 3, 11: 2}), 
(1, {7: 3, 9: 2, 11: 4, 3: 2, 6: 3, 4: 3, 12: 2}), 
(4, {3: 2, 7: 3, 6: 3, 1: 3, 11: 2, 12: 3}), (2, {9: 4, 8: 2, 10: 2, 5: 2})]
for item in values:
    name = item[0]
    pair_dict = item[1]
    might = []
    probably = []
    for key, value in pair_dict.items():
        if value > 3:
            probably.append(value)
        else:
            might.append(value)
    might = sorted(might)
    probably = sorted(probably)
    print("%s:Might(%s) Probably(%s)" % (name, ','.join(might), ','.join(probably))
编辑:稍作修改并更好地理解您的需求后,请尝试以下尺寸:

values = [(6, {3: 3, 4: 3, 7: 2, 1: 3, 11: 2}), 
(1, {7: 3, 9: 2, 11: 4, 3: 2, 6: 3, 4: 3, 12: 2}), 
(4, {3: 2, 7: 3, 6: 3, 1: 3, 11: 2, 12: 3}), (2, {9: 4, 8: 2, 10: 2, 5: 2})]
for item in values:
    name = item[0]
    pair_dict = item[1]
    might = []
    probably = []
    for key, value in pair_dict.items():
        if value > 3:
            probably.append(value)
        else:
            might.append(value)
    might = [str(i) for i in sorted(might)]
    probably = [str(i) for i in sorted(probably)]
    mightstr = "" if len(might) == 0 else "Might(%s) " % ','.join(might)
    probablystr = "" if len(probably) == 0 else "Probably(%s)" %  ','.join(probably)
    print("%s:%s%s" % (name, mightstr, probablystr))

如果您展示了您已经尝试过的内容以及出现的问题,那么问题可能会更清楚。因此,您必须尝试自己编写代码,发布您尝试过的代码,并解释哪些代码不起作用。您正在尝试处理json。这是一个元组列表,元组中的第二个元素是dict。请查看所有现有的问题和答案,等等。它向我显示了错误序列项0:预期字符串,找到了,因此我在追加时将值转换为str,但输出不正确。我得到了这个6:may(2,2,3,3)may(可能)1:may(可能(2,2,2,3,3,3)可能(4)它也打印可能和可能,当那里什么都没有的时候-像这样10:may(2,2,2,3,3)可能()和13:may()可能()s/b 10:may(#,#,#)如果没有可能,后面什么也没有,13应该是这个13:没有可能或者可能,带空括号。