【问题标题】:Python list printPython 列表打印
【发布时间】:2016-02-02 20:15:56
【问题描述】:

我正在学习 python,需要一些列表和打印方面的帮助。

列表最终会查找列表:

mylist = ["a", "d", "c", "g", "g", "g", "a", "b", "n", "g", "a", "s", "t", "z", "a"]

我用过计数器(我觉得哈哈)

class item_print(Counter):
    def __str__(self):
        return '\n'.join('{}: {}'.format(k, v) for k, v in self.items())

让它看起来像这样:

a:4
b:1
etc

想知道是否有办法让它看起来像这样:

   "a":4      "b":1
   etc        etc

【问题讨论】:

    标签: python list printing


    【解决方案1】:

    您可以使用集合模块中的计数器:

    from collections import Counter
    mylist = ["a", "d", "c", "g", "g", "g", "a", "b", "n", "g", "a", "s", "t", "z", "a"]
    
    for key,value in Counter(mylist).items():
        print '{}:{}'.format(key,value)
    

    【讨论】:

    • @Orion1125...感谢您接受他的回答
    【解决方案2】:

    我假设你想这样格式化:

    from operator import itemgetter
    from collections import Counter
    mylist = ['a', 'd', 'c', 'g', 'g', 'g', 'a', 'b', 'n', 'g', 'a', 's', 't', 'z', 'a']
    
    grp = Counter(mylist) # group the list
    s = sorted(grp.items(), key=itemgetter(0)) # sort the list
    for i in range(0, len(s), 2):
        print '"%s":%i\t' % (s[i][0], s[i][1]),
        if i+1 < len(s):
           print '"%s":%i' % (s[i+1][0], s[i+1][1])
    

    输出:

    "a":4   "b":1
    "c":1   "d":1
    "g":4   "n":1
    "s":1   "t":1
    "z":1
    

    【讨论】:

    • 是的。我建立在 Jaco 的评论之上,并按照我想要的方式让它变得不那么漂亮。感谢您的帮助,将保存此以备将来使用。
    猜你喜欢
    • 2016-03-31
    • 1970-01-01
    • 2013-02-22
    • 2011-01-24
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多