Python - удаление предмета из словаря - PullRequest
1 голос
/ 17 марта 2020

Моя цель для этого кода - запросить у пользователя компанию, город и штат. После того, как я распечатал данные, мне нужно удалить город, а затем распечатать новые данные. Когда я запускаю этот код, он выводит одни и те же данные дважды, практически не удаляя город. Пожалуйста, помогите мне понять, когда я разделяю cityState, почему это не позволяет мне удалить город.

Спасибо за вашу помощь!

#Create a dictionary
user_data = {}

#Prompt for user data
company_name = input("Enter company name: ")
cityState = input("Enter company city and state: ")

#store the responses
user_data[company_name] = cityState

#print data
print("\nCompany details:")
for company_name, cityState in user_data.items():
    print(company_name + " " + cityState)

#split the data
temp = cityState.split()
user_data[temp[0]] = temp[1]

#remove the city
user_data.pop(temp[0])

#print the data
print("\nWith the city removed: ")
print(company_name + " " + cityState)

Ответы [ 4 ]

1 голос
/ 17 марта 2020

В коде temp = cityState.split() значение split () возвращается в temp. Содержимое cityState не меняется, что вы печатаете в конце print(company_name + " " + cityState). Должен делать, как указано в blhsing.

1 голос
/ 17 марта 2020

Если вы хотите отделить город и штат от ввода, вы можете распаковать список возврата из вызова в cityState.split() для двух переменных:

city, state = cityState.split()
print("\nWith the city removed: ")
print(company_name + " " + state)
0 голосов
/ 17 марта 2020

для обновления company_name ключа из вашего dict только с тем состоянием, которое вы должны использовать:

user_data[company_name] = temp[1]

в вашем dict, переменная cityState - это строка, содержащая как город, так и штат, удалить город - значит удалить город из строки, а не удалить какой-либо ключ из своего диктата

0 голосов
/ 17 марта 2020

Вы можете использовать del user_data[<your_key>]

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...