得到随机列表的长度

时间:2017-06-20 01:11:15

标签: python

我有一些功能。我的最终目标是从列表中选择一个随机单词,将单词拆分为新列表,然后打印所选单词的长度。

def choose_word():
    for i in range(1):
        words = ['christmas', 'europe', 'icecream', 'america', 'apple', 'hamburger', 'refrigerator', 'dinosaur', 'television']
        word = list(random.choice(words))
        return word

def main():
    print(len(choose_word()))
    print(choose_word())

存在问题,len()实际上并未打印正确的值。我相信每次我对随机选择的单词进行操作时,它可能会改变单词。有没有办法阻止这个?如果我要运行main(),它会打印一个数字,后跟单词,但数字不正确。

1 个答案:

答案 0 :(得分:0)

这是因为你正在调用你的函数两次,所以第一次调用会给你一个随机字的长度,第二次你会得到另一个字的输出。您应该只将其称为一次,并将其返回存储在变量中,然后使用 变量:

def main():
    word = choose_word()
    print(len(word))
    print(word)

此外,您似乎在choose_word函数中进行了不必要的循环。这不是为您的代码服务的任何目的。对random.choice的调用正在为您选择这个词做所有工作。这里不需要做任何循环。

最终代码:

def choose_word():
    words = ['christmas', 'europe', 'icecream', 'america', 'apple', 'hamburger', 'refrigerator', 'dinosaur', 'television']
    word = list(random.choice(words))
    return word

def main():
    word = choose_word()
    print(len(word))
    print(word)

演示:

8
['i', 'c', 'e', 'c', 'r', 'e', 'a', 'm']