2024-04-27 03:21:09 发布
网友
import random words = ["Football" , "Happy" ,"Sad", "Love", "Human"] for word in words: word = random.choice(words) print(word) words.remove(word)
为什么上面的代码只打印出3个单词而不是全部5个单词?我是否试图以错误的方式以随机顺序打印来自words的单词?你知道吗
words
人们大多解释了为什么你没有得到你想要的行为,而只是用一个不同的习惯用法把另一个解决方案扔到混合中:
import random words = ["Football" , "Happy" ,"Sad", "Love", "Human"] random.shuffle(words) while words: print(words.pop())
在对列表进行迭代时,不能修改列表(通过添加或删除元素),因为行为未定义。这里有一个可能的替代方案,你正在做的事情没有这个问题:
random.shuffle(words) for word in words: print(word)
这是因为你没有正确循环。试试这个:
import random words = ["Football" , "Happy" ,"Sad", "Love", "Human"] while words: word = random.choice(words) print(word) words.remove(word)
您需要确保列表words不是空的,因为您不能在迭代数组时修改它。你知道吗
人们大多解释了为什么你没有得到你想要的行为,而只是用一个不同的习惯用法把另一个解决方案扔到混合中:
在对列表进行迭代时,不能修改列表(通过添加或删除元素),因为行为未定义。这里有一个可能的替代方案,你正在做的事情没有这个问题:
这是因为你没有正确循环。试试这个:
您需要确保列表
words
不是空的,因为您不能在迭代数组时修改它。你知道吗相关问题 更多 >
编程相关推荐