把自己的名字全拼例如gongli 按顺序循环排列叠加,形式如gongligongli..直到一千个字符止。清点这一千个字符中各个字符出现的次数输出成字共格式 {g:400,0:150...}
name = "gongli" # 将自己的名字赋值给变量name
result = "" # 初始化循环叠加后的字符串为空
for i in range(1000): # 按顺序循环,叠加字符串
result += name[i % len(name)] # 取余数来实现字符循环叠加
count_dict = {} # 初始化字符出现次数的字典
for char in result: # 遍历叠加后的字符串
if char not in count_dict: # 如果字符不在字典中,加入并设置出现次数为1
count_dict[char] = 1
else: # 如果字符已经在字典中,将该字符的出现次数加1
count_dict[char] += 1
print(count_dict) # 输出各个字符出现次数的字典
name = 'gongli'
s = ''
for i in range(1000):
s += name[i % len(name)]
freq_dict = {}
for c in s:
if c not in freq_dict:
freq_dict[c] = 1
else:
freq_dict[c] += 1
print(freq_dict)
不知道你这个问题是否已经解决, 如果还没有解决的话:该案例依旧可用,原案例学习博客参考:
https://dream.blog.csdn.net/article/details/82995074我们可以使用一个循环来不断拼接名字,每次循环将当前名字加上自己的全拼并赋值给当前名字,直到达到了一千个字符为止。具体代码如下:
import string
name = "gongli" # 初始名字
count = 0 # 用于计数
for i in range(1000 // len(name)):
name += "".join(string.ascii_lowercase[string.ascii_lowercase.index(c)+1] for c in name) # 将名字转化为全拼并加到名字末尾
count += len(name)
# 处理最后不到一千个字符的情况
if count < 1000:
left = 1000 - count
name += "".join(string.ascii_lowercase[string.ascii_lowercase.index(c)+1] for c in name)[:left]
print(name)
我们可以使用一个字典来统计每个字符出现的次数,遍历名字中的每个字符并在字典中相应地增加次数。代码如下:
char_counts = {}
for c in name:
if c in char_counts:
char_counts[c] += 1
else:
char_counts[c] = 1
print(char_counts)