【问题标题】:How do I select a random string from a list in Python?如何从 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。一旦你有了随机生成器,就只剩下选择那个元素了。

标签: python random


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    • 1970-01-01
    • 1970-01-01
    • 2016-06-08
    相关资源
    最近更新 更多