如何在python中定义一个函数来选择列表。

2024-09-30 00:37:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图定义一个函数来选择一个列表。我正在写一篇冒险小说。我选择将房间表示为列表,包括描述、怪物等等。 现在我想定义一个函数get\u room(id)来为我提供正确的房间

Room1=[description1,monster1]  
Room2=[description2,monster2]

我想我可以试着列一张单子,从中挑选出合适的房间。但这不是更慢吗? 我是新的编程,所以我宁愿如果解决方案不涉及类,如果在所有可能的。我使用的是python2.7.2。你知道吗


Tags: 函数id列表get定义小说冒险room
3条回答

我认为你可以用一个唯一的变量来声明你的房间:

valid_rooms = [['description1', 'monster1'],
['description2', 'monster2']]

这样就更容易操纵它们了。 获取用户所需职位的示例:

var = raw_input("Please enter room number: ")
print("you entered"), var
selectedRoom = int(var)
print( "room index %d : %s" % (selectedRoom, valid_rooms[selectedRoom]))

重要:我强烈建议您测试用户输入的int转换:

try:
    myint = int(var)
except ValueError:
    print("Sorry you do not enter a valid INTEGER!")

备注:在提议的场景中,函数get\u room()将非常简单(可能不太有用)

def get_room(id):
  return valid_rooms[id]

注意在python3.x中raw_input是renameinput。你知道吗

如果您的房间id是整数,则应使用列表。你知道吗

rooms = [Room1, Room2]

# I assume you want to assign your rooms a number from 1 to ...
def get_room(id):
    return rooms[id - 1]

如果您的房间不是整数,而是字符串,那么您应该使用dictionary。你知道吗

rooms = {
    "room1": Room1,
    "room2": Room2
}

def get_room(id):
   return rooms[id]

在这两种情况下,无论何时使用dictionary或list,都应该假设对元素的访问非常快。这是一个恒定的时间,这意味着每当字典/列表有10个、100个或100000个元素时,从中选择元素将花费相同的时间。你知道吗

您可以这样使用dictionary

dict = {
        'Room1' : ['description1','monster1'],
        'Room2' : ['description2','monster2']
       }

而不是像这样称呼他们:

print dict['Room1']

相关问题 更多 >

    热门问题