在for循环中更改时未重新分配变量

时间:2019-06-28 16:06:23

标签: python for-loop variables assign

此代码的目标是计算给定列表中出现次数最多的单词。我计划通过遍历字典来做到这一点。如果一个单词出现的次数大于存储在变量rep_num中的值的次数,则会重新分配该单词。当前,变量rep_num保持为0,并且未重新分配给单词在列表中出现的次数。我相信这与尝试在for循环中重新分配它有关,但是我不确定如何解决此问题。

def rep_words(novel_list):
    rep_num=0
    for i in range(len(novel_list)):
        if novel_list.count(i)>rep_num:
            rep_num=novel_list.count(i)
    return rep_num
novel_list =['this','is','the','story','in','which','the','hero','was','guilty']

在给定的代码中,应该返回2,但是返回0。

3 个答案:

答案 0 :(得分:1)

在for循环中,您正在遍历数字,而不是列出元素本身,

public class A {
    public B b;
    public A() {
        this.b = new B();
    }
}
 
public class B {
    public C c;
    public B() {
        this.c = new C();
    }
}
 

答案 1 :(得分:1)

您要遍历一个数字范围,并npm version patch --force 整数count,列表中根本不存在任何值。请尝试此操作,它返回最大频率,并有选择地返回出现多次的单词列表。

i

答案 2 :(得分:0)

您的函数有错误(您要计算索引,而不是值),请这样写:

def rep_words(novel_list):
    rep_num=0
    for i in novel_list:
        if novel_list.count(i)>rep_num:  #you want to count the value, not the index
            rep_num=novel_list.count(i)
    return rep_num

或者您也可以尝试以下方法:

def rep_words(novel_list):
    rep_num=0
    for i in range(len(novel_list)):
        if novel_list.count(novel_list[i])>rep_num:
            rep_num=novel_list.count(novel_list[i])
    return rep_num