заполнение вложенных массивов в python - PullRequest
1 голос
/ 11 апреля 2020

Моя задача - создать вложенные массивы с координатами городов. Я пытаюсь написать код, но он не работает. Можете ли вы помочь мне, пожалуйста?

i = 0
cities = []
count_of_cities = int(input("How many cities do you want?"))
while i < count_of_cities:
   x = 0
   coordinate_x = int(input("Coordinate x for city is: "))
   coordinate_y = int(input("Coordinate y for city is: "))
   cities[i][x].append(coordinate_x)
   x += 1
   cities[i][x].append(coordinate_y)
   i += 1
print(cities)

Ответы [ 2 ]

0 голосов
/ 11 апреля 2020

Вы можете просто добавить список в города и использовать для l oop лучше

cities = []
count_of_cities = int(input("How many cities do you want?"))
for _ in range(count_of_cities):
   coordinate_x = int(input("Coordinate x for city is: "))
   coordinate_y = int(input("Coordinate y for city is: "))
   cities.append([coordinate_x, coordinate_y])


print(cities)

How many cities do you want?2
Coordinate x for city is: 2
Coordinate y for city is: 2
Coordinate x for city is: 3
Coordinate y for city is: 3
[[2, 2], [3, 3]]
0 голосов
/ 11 апреля 2020

Проблема в:

cities[i][x].append(coordinate_x)

На первой итерации, например, вы пытаетесь добавить к cities[0][0], но в этот момент его не существует (IndexError следует выбросить ) потому что список cities пуст. Я бы предложил вам сделать:

i = 0
cities = []
count_of_cities = int(input("How many cities do you want?"))
while i < count_of_cities:
   coordinate_x = int(input("Coordinate x for city is: "))
   coordinate_y = int(input("Coordinate y for city is: "))
   cities.append([coordinate_x, coordinate_y])
   i += 1
print(cities)

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