如何从元组中删除括号和逗号

时间:2017-09-22 18:10:59

标签: python

我试图打印一个字符串的前5个字符。 例如,如果我键入" aaaabbbbcccddfg"

无论如何,我可以改变输出,使其成为:4,b:4,c:3,d:2,f:1?

代码是:

import sys
from collections import Counter

try:
    string = sys.argv[1]

    counts=Counter(string.lower()) # Counter({'l': 2, 'H': 1, 'e': 1, 'o': 1})
    lista = counts.most_common(5)

    print lista

except ValueError:
    print "Error"

目前的结果是:[(" a",4),(" b",4),(" c",3),(& #34; d",2),(" f",1)]

5 个答案:

答案 0 :(得分:0)

适用于python 2.7:

from __future__ import print_function
import sys
from collections import Counter

try:
    string = sys.argv[1]
    counts=Counter(string.lower()) # Counter({'l': 2, 'H': 1, 'e': 1, 'o': 1})
    lista = counts.most_common(5)
    print (lista)
    for l in lista:
        print(':'.join(str(e) for e in l), end=",")

except ValueError:
    print ("Error")

答案 1 :(得分:0)

这适用于Python 2.7

<h2>2018 Spring Conference and Registration</h2>
<ul class="prod-options-list">
<li>
    <h4><a href="#">2018 Spring Conference Member Registration</a></h4>
</li>
<li>
    <h4><a href="#">2018 Spring Conference Non-Member Registration</a></h4>
</li>
<li>
    <h4><a href="#">2018 Spring Conference Guest Registration</a></h4>
</li>
</ul>

它首先形成一个字典然后打印它的键和没有import sys from collections import Counter try: string = sys.argv[1] counts=Counter(string.lower()) lista = counts.most_common(5) dict_lista = dict((x, y) for x, y in lista) print lista for key,item in dict_lista.items(): print key + ":" + str(item) except ValueError: print "Error" s的项目 - 我离开原始元组只是为了比较。

答案 2 :(得分:0)

请执行以下操作:

for key,val in dict(lista).items(): 
       print( str(key) + ':' + str(val), end=', ') 

这将打印a:4, b:4, c:3, d:2, f:1

答案 3 :(得分:0)

使用列表理解的一行解决方案:

listb = ",".join([str(a) + ":" + str(b) for a, b in lista])
print listb # output => a:4,b:4,c:3,d:2,g:1

答案 4 :(得分:0)

烨。

print ','.join(map(lambda (c,n): "{letter}:{count}".format(letter=c,count=n), lista))

那里有很多事情,所以让我们把它分解。 "{letter}:{count}"format string,这就是您应该如何根据数据创建字符串。从Python 3.6开始,这会更容易一些。一旦你习惯了这样的字符串格式化,你就会很开心。

lambda (c,n): ...这是一个lambda函数。换句话说,它是一个函数定义,可以重复应用于数组lista,而无需在代码中定义。 (c,n)在这里做了一些名为“解包”的事情,其中​​lista中的元素是成对的,因此这将第一个元素分成两个部分并将它们存储在c和{{1}中} 分别。 Lambda函数与n非常匹配,它将函数作为参数和集合,然后将该参数应用于该集合并返回结果列表。

最后一件事是map。这是将字符串放在一起的有效方法。它是一种字符串方法,它将字符串列表作为参数,并返回由原始字符串分隔的新字符串。例如,str.join()会产生','.join(['a','b','c'])

编辑: bug修复和One-liner:

'a,b,c'