Zanimljivi zadatci s listama
4.4.2023.
B. 3. 2 rješava problem primjenjujući složene tipove podataka definirane zadanim programskim jezikom.3. 2 rješava problem primjenjujući složene tipove podataka definirane zadanim programskim jezikom.
1. Ana i njezina prijateljica žele planirati putovanje na kojem će posjetiti nekoliko gradova. Trebaju kreirati listu gradova koje želi posjetiti.
cities = ['London', 'Rim', 'Pariz', 'Beč', 'Amsterdam']
a) Iz te liste žele ovakav ispis:
Gradovi koje Ana želi posjetiti su:
- London
- Rim
- Pariz
- Beč
- Amsterdam
Rješenje:
cities = ['London', 'Rim', 'Pariz', 'Beč', 'Amsterdam']
print('Gradovi koje Ana želi posjetiti su:')for city in cities:
print('- ' + city)
1. b) Program omogućuje unos još jednog grada te ispisuje konačnu listu.
cities = ['London', 'Rim', 'Pariz', 'Beč', 'Amsterdam']
print('Gradovi koje Ana želi posjetiti su:')
for city in cities:
print('- ' + city)
response = input('Želiš li dodati još jedan grad? ')
if response.lower() == 'da':
new_city = input('Unesi ime grada: ')
cities.append(new_city)
print('Konačna lista gradova koje žele posjetiti:')
for city in cities:
print('- ' + city)
2. Definiramo listu gradova i njihove udaljenosti od Zagreba..
grad = ['Zagreb', 'Split', 'Rijeka', 'Osijek', 'Zadar', 'Šibenik', 'Dubrovnik']
udaljenost = [0, 410, 155, 290, 270, 330, 570]
z = list(zip(grad, udaljenost))
print(z)
[('Zagreb', 0), ('Split', 410), ('Rijeka', 155), ('Osijek', 290), ('Zadar', 270), ('Šibenik', 330), ('Dubrovnik', 570)]
Ispisati grad koji je najbliži Zagrebu.
ndg = grad[0] #najdalji grad
ndu = udaljenost[0] #najdalja udaljenost
for g, u in zip(grad, udaljenost):
if u > ndu:
ndg = g
ndu = u
print('Najdalji grad od Zagreba je', ndg, 'udaljen', ndu, 'km.')
Ispisati grad koji je naviše udaljen od Zagreba
nbg = grad[1] #najbliži grad
nbu = udaljenost[1] #najbliza udaljenost
for g, u in zip(grad, udaljenost):
if g != 'Zagreb' and u < nbu:
nbg = g
nbu = u
print('Najbliži grad od Zagreba je', nbg, 'udaljen', nbu, 'km.')
Sortirani po udaljenosti
km = udaljenost[:]
gr = grad[:]
d = len(km)
for i in range(d):
for j in range(i+1, d):
if km[i] > km[j]:
temp = km[i]
km[i] = km[j]
km[j] = temp
gr[i], gr[j] = gr[j], gr[i]
for g, u in zip(gr, km):
print(f'{g}: {u}')
Ispis:
Zagreb: 0
Rijeka: 155
Zadar: 270
Osijek: 290
Šibenik: 330
Split: 410
Dubrovnik: 570