所以我有个问题。 假设我们有一个单词,单词中的所有字母都必须按出现频率排序,从出现频率最高的字母开始。 例如,“假设”看起来像“ppSsuoe”或“Ssppoeu”等等
我认为我应该在列表中添加单词,找到相同的字母,计算出我有多少相同的字母,并将其附加到列表的开头,只匹配其中一个的字母可以随机打印。你知道吗
但在列表中添加单词后,我不知道该怎么办。 如何找到相同的字母?如何将它们排序并附加到单词的开头?我应该使用临时列表吗?或者我应该用关键字:值字典? 你知道吗
name = 'Suppose'
list = []
for letter in name:
list.append(letter)
首先,我们将输入转换成一个字典,通过
Counter
对每个条目进行计数。接下来,我们使用sorted
将字典按我们想要的顺序(从最大到最小)排序。最后,我们在字典上循环,将项目添加回字符串形式,这样p:2
就变成了pp
。之后,我们通过join
将所有项连接到一个字符串中。你知道吗我要做的方法是首先创建一个dict,用键输入字母并计算出现的次数。别忘了使用name.下()以便先把这个词斩首。然后,按值降序排列dict。最后,创建一个新字符串并将key*值添加到其中
可以使用
Collection
,后跟适当的排序:但是请注意,此方法没有指定具有相同频率的字母的最终顺序。在这里,唯一可以保证的是,更频繁的信件将出现在不太频繁的信件之前。如果您希望相同频率的字母按字母顺序排列,则需要不同的
key
参数。你知道吗相关问题 更多 >
编程相关推荐