我试图打印一个字符串的前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)]
答案 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'