#python #arrays #record
Вопрос:
Я пишу программу для своего класса, в которой я должен получить входные данные от пользователя и поместить эти данные в запись, которая, в свою очередь, переходит в массив.
def createArray0fRecords(length):
city_records = ["", "", 0.0,""]#Create record
#City, Country, Population in Millions, Main Language
city_array = [city_records]*length #Create Array of Records
return city_array
def populateRecords(city_array):
for counter in range (0, len(city_array)):
print("")
print("Please enter the city")
city=input()
print('Please enter the country')
country=input()
print("Please enter the population in millions")
population=float(input())
while population < 0:
print(population," isn't a valid answer. Please input a number greater than 0.")
population=input()
print("Please enter the main language")
language = input()
city_array[counter] = [city, country, population, language]
return city_array
def main_program():
print("How many cities will you be entering?")
length = int(input())
city_array = createArray0fRecords(length)
city_array = populateRecords(city_array)
print("What city would you like the information about?")
city=input()
if city in (city_array[1]):
print(city_array[city])
main_program()
Я верю, что я почти на месте, и теперь нужно изменить только последние несколько строк. Спасибо
Извините, я новичок в stack overflow и понял, что неправильно сформулировал свой вопрос, что я должен сделать, это собрать всю информацию, затем я должен ввести, о каком городе я хотел бы получить информацию, и программа предоставит мне информацию об этом городе
Комментарии:
1. Добро пожаловать в Stack Overflow. В чем здесь собственно вопрос? Что конкретно должно произойти, когда вы запускаете программу, и чем это отличается от того, что происходит на самом деле?
2. Извините, я новичок в stack overflow и понял, что неправильно сформулировал свой вопрос, что я должен сделать, это собрать всю информацию, затем я должен ввести, о каком городе я хотел бы получить информацию, и программа предоставит мне информацию об этом городе.
Ответ №1:
Вы можете отфильтровать city_array по соответствующему названию города следующим образом (вы можете прочитать о понимании списка здесь).
relevant_cities = [c for c in city_array if c[0] == city]
relevant_cities теперь будет списком всех записей, имеющих город, равный вводу пользователя. Теперь вы можете проверить, пуст ли этот список, и делать с ним все, что захотите.
Комментарии:
1. Спасибо! Итак, это способ сделать это, и это просто поместить эту строку кода в мою программу, или есть еще что-то, что нужно сделать?
2. Есть и другие способы сделать это, но, по сути, достаточно вставить эту строку в вашу программу вместо «если город в (city_array[1]): …». После этой строки вы можете написать print(relevant_cities[0]), чтобы получить первый элемент, который имеет значение. Но будьте осторожны, если соответствующий город не будет найден, будет выдана ошибка.
3. Идеальная пара, тай