forked from horverno/sze-academic-python
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpokemon.py
46 lines (37 loc) · 1.98 KB
/
pokemon.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import matplotlib.pyplot as plt
# A CSV fájl sorainak beolvasása és tördelése a szeparáló karakterek mentén.
lines = [line.strip().split(",") for line in open("Pokemon.csv", "r").readlines()]
# A pokémonok adatainak tárolására szolgáló lista. Minden pokémont kulcs-érték párokkal fogunk tárolni.
pokemons = []
# A kulcs-érték párok felvétele a pokemons listába. Az 1-es indextől indulunk, mert az első (0.) helyen a fejléc található.
for i in range(1, len(lines)):
pokemons.append({lines[0][j]:lines[i][j] for j in range(len(lines[0]))})
# Támadási és védekezési értékek vizualizálása a legendás és nem legendás pokémonok esetén.
for pokemon in pokemons:
if pokemon["Legendary"] == "True":
plt.plot(int(pokemon["Attack"]), int(pokemon["Defense"]), "rD")
else:
plt.plot(int(pokemon["Attack"]), int(pokemon["Defense"]), "b^")
plt.title("Piros: legendás - Kék: nem")
plt.xlabel("Támadás")
plt.ylabel("Védekezés")
plt.show()
# Azon vizi pokémonok neveit tartalmazó tuple, melyek sebessége 100 és 150 közé esik.
water_pokemons = tuple(pokemon["Name"] for pokemon in pokemons if pokemon["Type 1"] == "Water" and 100 <= int(pokemon["Speed"]) <= 150)
# Az előzőleg kiszűrt nevek megjelenítése szóközzel elválasztva.
for pokemon in water_pokemons:
print(pokemon, end=" ")
# Elsődleges típus szerint csoportosított pokémonok tárolására létrehozott szótár.
pokemons_by_type1 = {}
# A szótár feltöltése a megfelelő listákkal.
for pokemon in pokemons:
ptype = pokemon["Type 1"]
# Ha nincs még lista a vizsgált típushoz, akkor létrehoz egy újat.
if not ptype in pokemons_by_type1:
pokemons_by_type1[ptype] = []
# Aktuális pokémon nevének felvétele a megfelelő listába.
pokemons_by_type1[ptype].append(pokemon["Name"])
# Az egyes pokémon típusok darabszámának vizualizálása.
for pokemon in pokemons_by_type1:
plt.barh(pokemon, len(pokemons_by_type1[pokemon]))
plt.show()