python - 如何使字典的每个键值打印在一个新行上?

标签 python python-3.x dictionary

如果我有这样一个给定的字典:

{'avglen': 4.419354838709677, 'count:': 93, 'mosts:': 'your', 'longs:': ['stretched'], 'shorts:': ['i', 'a'],}

如何让每个键值打印在一个新行上?

它很长,但这是我用来获取这本词典的代码。我几乎将每个键值添加到字典中。所以我想出了最短的单词,然后将其添加到字典中。我也注意到有额外的冒号。但我想出了它的值(value)的一部分,我可以使用 .replace() 把它拿走??

def build_report(freq):
    report={}
    freq_list=list(freq.keys())
    keys=sorted(freq, key=len)
    #for shorts:
    shortest=keys[0]
    shortest = [keys[0]]
    for key in keys[1:]:
        if len(key) == len(shortest[0]):
            shortest.append(key)
        else:
            break   
    report["shorts:"]=shortest
    #for longs:
    longest=keys[-1]
    longest = [keys[-1]]
    for key in reversed(keys[:-1]):
        if len(key) == len(longest[0]):
            longest.append(key)
        else:
            break
    report["longs:"]=longest
    #for mode:
    val_list=list(freq.values())
    sorted_val_list=sorted(val_list)
    mode=sorted_val_list[-1]
    for key in freq.keys():
        if freq[key]==mode:
            mode_word=key
    report["mosts:"]=mode_word
    # for word count:
    wordcount=len(list(freq.keys()))
    report["count:"]=wordcount
    #for average length:
    avg=list(freq.keys())
    average=sum(map(len,avg))/len(avg)
    report["avglen"]=average
    #for freq dictionary of word to word count
    freqs=freq
    report["freqs:"]=freqs
    return report

最佳答案

如果你真的不想导入 pprint 但希望它“看起来像”字典,你可以这样做:

print("{" + "\n".join("{!r}: {!r},".format(k, v) for k, v in d.items()) + "}")

关于python - 如何使字典的每个键值打印在一个新行上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20181899/

相关文章:

java - 如何在 python 代码中获取 .jar 执行的输出?

Python Pandas 数据框 : filter columns using a list?

python - 仅当外键存在时才保存内容的标准方法是什么?

python 3 : matplotlib plotting four lines with dictionary

Python:查询字典到 JSON

python - Mongodb导入很慢,如何提高性能?

python - 更改 PyLint 中列入黑名单的函数

python-3.x - Pip Install -r requirements.txt 没有失败

python - Python 3.6 中的 UnicodeEncodeError

security - 安全页面上的百度 map 实现