2015-04-09 2 views
0

Я пытаюсь создать словарь в python, где Если я наберу CS101 , я получу номер комнаты данных 3004, инструктор Хейнс, а время встречи - 8:00. Я не уверен на 100%, как дать инструктору, номеру номера и времени встречи. Это то, что я до сих пор.Python Dictionary как

def get_menu_choice(): 
    print('Course number, and their value') 
    print('-------------------------------') 
    print('1. Look up the key CS101') 
    print('2. Quit the program') 
    print() 
    #understand what the user wants 
    choice = int(input('Enter your choice: ')) 

    # make sure it gives you the correct information 

    while choice < look_up or choice > Quit: 
     choice = int(input('Enter a valid choice: ')) 

    # return the choice you picked 
    return choice 

Не совсем уверен, куда идти отсюда ... или где разместить мои данные. Я хочу, чтобы иметь возможность ввести в CS101, и есть номер комнаты, время встречи, и инструктор придумать

+0

Вы знакомы с концепцией объектно-ориентированного программирования? –

+2

Даже этот фрагмент кода недействителен. Я думаю, вы серьезно должны подумать о том, чтобы вернуться к основам Python. Я хотел бы порекомендовать: http://www.codecademy.com/en/tracks/python –

+1

ok, принимая пользователя, чтобы ввести выбор 1. но где данные для номера комнаты и прочего? –

ответ

0

Легкий способ осуществить это было бы использовать вложенную словарь:

d = {} 

d['CS101'] = {'room number': 3004, 'instructor': 'Haynes', 'time': '8:00 am'} 

print d 
{'CS101': {'instructor': 'Haynes', 'time': '8:00 am', 'room number': 3004}} 

print d['CS101']['time'] 
Out[4]: '8:00 am' 

Тогда вам просто нужно распечатать каждый элемент в словаре. Вы также можете использовать класс, но я бы получил ручку словарей, прежде чем перейти на классы/ООП.

1

Словарь в python - это всего лишь набор key ->value пары;

"CS101" -> "Library, Colonel Mustard, Candlestick" 
"CS102" -> "Conservatory, Reverend Green, Revolver" 
"CS103" -> "Ballroom, Professor Plum, Lead Pipe" 

Как вы храните keys и values до вас, вы могли бы иметь их как strings, как выше, или вы можете хранить их как tuples/arrays, или как обычай objects - это до вас.

В python вы создаете словарь, используя синтаксис {key: value, key: value, ...} - он подробно описан в стандартной библиотеке documentaion here.

Вы можете дополнительно добавить новые варианты в словарь, используя синтаксис назначения my_dictionary[key] = value (который будет перезаписывать и старое значение на том же ключе).

Например, поворачивая то, что мы имели до этого в dict формат;

course_plan = dict() # create a new empty dictionary 
course_plan = {}  # or we can do it like this. 

course_plan["CS101"] = "Library, Colonel Mustard, Candlestick" 
course_plan["CS102"] = "Conservatory, Reverend Green, Revolver" 
course_plan["CS103"] = "Ballroom, Professor Plum, Lead Pipe" 

И вы получите доступ к записи в словаре так:

print course_plan["CS101"] # This prints: "Library, Colonel Mustard, Candlestick" 

Так что вам нужно создать словарь, как это, а затем внутри вашего доступа к функции его.

Конечно, вы могли бы взять его немного дальше; value s в словаре есть данные: arrays/tuples данных;

course_plan["CS101"] = ["Library", "Colonel Mustard", "Candlestick"] 
course_plan["CS101"] = ("Library", "Colonel Mustard", "Candlestick") 

Или как в другом ответе они могут быть словарями, содержащими некоторые метаданные;

course_plan["CS101"] = {"location": "Library", "suspect": "Colonel Mustard", "weapon": "Candlestick"} 

Или вы действительно можете создать свой собственный класс для хранения данных и, кроме того, легко сместить его;

class MyObject(object): 
    def __init__(self, location, suspect, weapon): 
    self.location = location 
    self.suspect = suspect 
    self.weapon = weapon 

    def __repr__(self): 
    return "%s in the %s with the %s" %(self.suspect, self.location, self.weapon) 

course_plan["CS101"] = MyObject("Professor Plum", "Ballroom", "Rope") 

print course_plan["CS101"] # Professor Plum in the Ballroom with the Rope 
0

Лучше всего читать учебник по базовому словарю Python.

Как создать словарь:

Используйте dict() создать пустой словарь

>>> d = dict() 
>>> type(d) 
<type 'dict'> 

или

>>> d1 = {} 
>>> type(d1) 
<type 'dict'> 

Присвоить и получить ключ и значения:

>>> d = {"Key1":"Value1"} 
>>> d 
{'Key1': 'Value1'} 
>>> d["Key2"] = "Value2" 
>>> d 
{'Key2': 'Value2', 'Key1': 'Value1'} 
>>> 

словарь со значением ключа словаря

После демо, чтобы получить ключ, номер комнаты и время встречи от пользователя.

код:

result = {} 
u_key = raw_input("Enter key:") 
room_no = raw_input("Enter room number:") 
meeting_time = raw_input("Meeting time:") 
result[u_key] = {"room_number":room_no, "meeting_time":meeting_time} 

print "\nFinal Result:", result 

Выход:

Enter key:C001 
Enter room number:R001 
Meeting time:12:30 PM 

Final Result: {'C001': {'room_number': 'R001', 'meeting_time': '12:30 PM'}} 

Примечание:

Использование raw_input() для Python 2.x

Использовать ввод() для Python 3.x