如何从 Python 的列表中选择随机字符串?
Posted
技术标签:
【中文标题】如何从 Python 的列表中选择随机字符串?【英文标题】:How do I select a random string from a list in Python? 【发布时间】:2016-05-20 10:17:11 【问题描述】:add = ""
addmovie = raw_input("Type 'a' to add a title, 'b' to pick a movie or '/' to quit: ")
while addmovie == 'a' or addmovie == '/' or addmovie == 'b':
if addmovie == 'a':
add = list(add) + list(raw_input("Enter movie name: "))
elif addmovie == '/':
print 'Goodbye.'
sys.exit()
elif addmovie == 'b':
break
addmovie = raw_input("Type 'a' to add a title, 'b' to pick a movie or '/' to quit: ")
# Define Movie_list and random choice
Movie_list = list(add) #+ movie_list
random_movie = random.choice(Movie_list)
print random_movie
movie_list 是之前定义的
如果仅使用 while 循环和 if/elif/else 可能会有所帮助。我只学到了这些材料。
【问题讨论】:
希望它现在正在显示。 没有随机生成器是不可能的。所以你可能可以使用random#randrange()
或implement your own。一旦你有了随机生成器,就只剩下选择那个元素了。
【参考方案1】:
所以首先你可能想检查一下 python 的 list() 函数对字符串做了什么。 python doc
简单地说 list("foo") 将创建列表 ['f', 'o', 'o']。我猜这可能不是您期望该函数执行的操作:)
您将所有电影存储在一个字符串中,这可能没问题,但我建议使用一个简单的数组(特别是如果您想稍后再次使用数据,例如选择一个随机项目)。
所以不要连接所有输入的电影名称:
add = list(add) + list(raw_input("Enter movie name: "))
您可以简单地将它们附加到一个数组中:
movies.append(raw_input("Enter movie name: "))
然后,如果您使用 random.choice(movies),将返回该数组中的伪随机项。
所以您的代码可能如下所示:
import sys, random
# Movie_List is now here
movies = []
addmovie = raw_input("Type 'a' to add a title, 'b' to pick a movie or '/' to quit: ")
while addmovie == 'a' or addmovie == '/' or addmovie == 'b':
if addmovie == 'a':
movies.append(raw_input("Enter movie name: "))
elif addmovie == '/':
print 'Goodbye.'
sys.exit()
elif addmovie == 'b':
break
addmovie = raw_input("Type 'a' to add a title, 'b' to pick a movie or '/' to quit: ")
# random choice
random_movie = random.choice(movies)
print random_movie
【讨论】:
以上是关于如何从 Python 的列表中选择随机字符串?的主要内容,如果未能解决你的问题,请参考以下文章
从Firestore获取一个ArrayList并从该列表中选择3个随机字符串