所以我試圖讓我的代碼列印出一個字母被列印的次數(空間排除),這是我的代碼到目前為止
def charHistogram(filename: str):
g = list(filename)
f = []
for x in g:
f.append([x, (g.count(x)*' ')])
return f
print(charHistogram(filename='Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Praesent ac sem lorem. Integer elementum
ultrices purus, sit amet malesuada tortor
pharetra ac. Vestibulum sapien nibh, dapibus
nec bibendum sit amet, sodales id justo.'))
這是我根據代碼的輸出..
[['L', ' '], ['o', ' '], ['r', ' '], ['e', ' '], ['m', ' '], [' ', ' '], ['i', ' '], ['p', ' '], ['s', ' '], ['u', ' '], ['m', ' '], [' ', ' '], ['d', ' '], ['o', ' '], ['l', ' '], ['o', ' '], ['r', ' '], [' ', ' '], ['s', ' '], ['i', ' '], ['t', ' '], [' ', ' '], ['a', ' '], ['m', ' '], ['e', ' '], ['t', ' '], [',', ' '], [' ', ' '], ['c', ' '], ['o', ' '], ['n', ' '], ['s', ' '], ['e', ' '], ['c', ' '], ['t', ' '], ['e', ' '], ['t', ' '], ['u', ' '], ['r', ' '], [' ', ' '], ['a', ' '], ['d', ' '], ['i', ' '], ['p', ' '], ['i', ' '], ['s', ' '], ['c', ' '], ['i', ' '], ['n', ' '], ['g', ' '], [' ', ' '], ['e', ' '], ['l', ' '], ['i', ' '], ['t', ' '], ['.', ' '], [' ', ' '], ['P', ' '], ['r', ' '], ['a', ' '], ['e', ' '], ['s', ' '], ['e', ' '], ['n', ' '], ['t', ' '], [' ', ' '], ['a', ' '], ['c', ' '], [' ', ' '], ['s', ' '], ['e', ' '], ['m', ' '], [' ', ' '], ['l', ' '], ['o', ' '], ['r', ' '], ['e', ' '], ['m', ' '], ['.', ' '], [' ', ' '], ['I', ' '], ['n', ' '], ['t', ' '], ['e', ' '], ['g', ' '], ['e', ' '], ['r', ' '], [' ', ' '], ['e', ' '], ['l', ' '], ['e', ' '], ['m', ' '], ['e', ' '], ['n', ' '], ['t', ' '], ['u', ' '], ['m', ' '], [' ', ' '], ['u', ' '], ['l', ' '], ['t', ' '], ['r', ' '], ['i', ' '], ['c', ' '], ['e', ' '], ['s', ' '], [' ', ' '], ['p', ' '], ['u', ' '], ['r', ' '], ['u', ' '], ['s', ' '], [',', ' '], [' ', ' '], ['s', ' '], ['i', ' '], ['t', ' '], [' ', ' '], ['a', ' '], ['m', ' '], ['e', ' '], ['t', ' '], [' ', ' '], ['m', ' '], ['a', ' '], ['l', ' '], ['e', ' '], ['s', ' '], ['u', ' '], ['a', ' '], ['d', ' '], ['a', ' '], [' ', ' '], ['t', ' '], ['o', ' '], ['r', ' '], ['t', ' '], ['o', ' '], ['r', ' '], [' ', ' '], ['p', ' '], ['h', ' '], ['a', ' '], ['r', ' '], ['e', ' '], ['t', ' '], ['r', ' '], ['a', ' '], [' ', ' '], ['a', ' '], ['c', ' '], ['.', ' '], [' ', ' '], ['V', ' '], ['e', ' '], ['s', ' '], ['t', ' '], ['i', ' '], ['b', ' '], ['u', ' '], ['l', ' '], ['u', ' '], ['m', ' '], [' ', ' '], ['s', ' '], ['a', ' '], ['p', ' '], ['i', ' '], ['e', ' '], ['n', ' '], [' ', ' '], ['n', ' '], ['i', ' '], ['b', ' '], ['h', ' '], [',', ' '], [' ', ' '], ['d', ' '], ['a', ' '], ['p', ' '], ['i', ' '], ['b', ' '], ['u', ' '], ['s', ' '], [' ', ' '], ['n', ' '], ['e', ' '], ['c', ' '], [' ', ' '], ['b', ' '], ['i', ' '], ['b', ' '], ['e', ' '], ['n', ' '], ['d', ' '], ['u', ' '], ['m', ' '], [' ', ' '], ['s', ' '], ['i', ' '], ['t', ' '], [' ', ' '], ['a', ' '], ['m', ' '], ['e', ' '], ['t', ' '], [',', ' '], [' ', ' '], ['s', ' '], ['o', ' '], ['d', ' '], ['a', ' '], ['l', ' '], ['e', ' '], ['s', ' '], [' ', ' '], ['i', ' '], ['d', ' '], [' ', ' '], ['j', ' '], ['u', ' '], ['s', ' '], ['t', ' '], ['o', ' '], ['.', ' ']]
但我希望它是這樣的......
e
t
s
i
a
m
r
u
l
n
o
c
d
p
b
g
h
j
v
我應該在我的代碼中更改什么?
uj5u.com熱心網友回復:
這個怎么樣:
def armar_dict(filename: str):
diccionario={}
for letra in filename:
if letra in diccionario:
diccionario[letra]=diccionario[letra] 1
else:
diccionario[letra]=1
return diccionario
def order_dict (diccio):
sorted_dict = {}
sorted_keys = sorted(diccio, key=diccio.get)
for w in sorted_keys:
sorted_dict[w] = diccio[w]
return sorted_dict
def char_histogram(diccio):
for k, v in diccio.items():
print (k ": " " "*v)
我希望你喜歡它。
uj5u.com熱心網友回復:
這可以通過以下方式實作:
import string
def charHistogram(filename: str):
alpha = string.ascii_lowercase
g = list(filename.lower())
chars = set(g)
f = []
for char in chars:
if char in alpha:
f.append([char, (g.count(char)*' ')])
f.sort(key=lambda x: len(x[1]), reverse=True)
return f
result = charHistogram(filename='''Lorem ipsum dolor sit amet, consectetur adipiscing
elit. Praesent ac sem lorem. Integer elementum
ultrices purus, sit amet malesuada tortor
pharetra ac. Vestibulum sapien nibh, dapibus
nec bibendum sit amet, sodales id justo.''')
for char, bar in result:
print(char, bar)
這使:
e
t
s
a
i
r
u
m
o
n
l
c
d
p
b
h
g
j
uj5u.com熱心網友回復:
您可以使用:
replace_list = [(" ", ""), (".", ""), (",", "")]
def charHistogram(filename: str):
for old, new in replace_list:
filename = filename.lower().replace(old, new) # replace unwanted characters
g = list(filename)
f = {}
for x in g:
if x in f:
f[x] = " "
else:
f[x]= " "
return sorted(f.items(), key=lambda x: x[1], reverse=True) # sort
data = charHistogram(filename='Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent ac sem lorem. Integer elementum ultrices purus, sit amet malesuada tortor pharetra ac. Vestibulum sapien nibh, dapibus nec bibendum sit amet, sodales id justo.')
for key, value in data:
print(key, value)
這給你:
e
t
s
i
a
r
m
u
l
o
n
p
d
c
b
g
h
v
j
uj5u.com熱心網友回復:
我想,我的方法有較少的線條 :-) ,雖然外殼是一樣的
def charHistogram(filename: str):
filename = str.lower(filename)
occurences = {char: " " * filename.count(char) for char in filename if char.isalnum()}
occurences = sorted(occurences.items(), key=lambda item: item[1], reverse=True)
occurences = "\n".join([f"{l} {c}" for l, c in occurences])
return occurences
uj5u.com熱心網友回復:
這是實作此目的的另一種方法,看起來更容易閱讀。
from collections import Counter
test_str ='Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Praesent ac sem lorem. Integer elementum ultrices purus, sit amet malesuada
tortor pharetra ac. Vestibulum sapien nibh, dapibus nec bibendum sit amet,
sodales id justo.'
str_count = Counter(test_str)
#sort by occurrences
str_count =str_count.most_common()
for ch in str_count:
if str(ch[0]) != ' ':
plusCtr=0
pStr=''
while plusCtr< ch[1]:
pStr =' '
plusCtr =1
print(str(ch[0]) ':' pStr)
print('end of program')
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/357899.html
下一篇:Python:矩陣中專案的平均值
