Více rozměrné pole(seznam) v Pythonu – Python – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Více rozměrné pole(seznam) v Pythonu – Python – Fórum – Programujte.comVíce rozměrné pole(seznam) v Pythonu – Python – Fórum – Programujte.com

 

midnighter@centrum.cz
~ Anonymní uživatel
8 příspěvků
20. 2. 2008   #1
-
0
-

Řeším následující problém:

Mám katalog hvězd a potřebuju je roztřídit do polí, podle jejich uhlové pozice, protože když vykreluju všech 1600 objektů, tak to značně zpomaluje systém a program je nepoužitelný.

Takže potřebuju vykreslit jenom hvězdy které jdou právě vidět - na které je natočený objektiv..

Chtěl sem to vyřešit rozčleněním hvězdné oblohy po 30 stupních do polí - jakože v poli třeba 30,30 bude seznam hvězd které mají oba uhly menší než 30. v poli 60,60 budou hvězdy které mají oba úhly větší než 30 a menší než 60.

A teď v čem je problém - netuším jak v pythonu vytvořit dvojrozměrné pole(seznam), které by obsaho další seznam
Zkoušel sem už všelicos možné ale pořád na to nemůžu dojít.

v delphi nebo v C by se něco takového napsalo asi takto:



pole[30][30] = seznam;
seznam = pole[30][30];
seznam.add(); - v pythonu by samozřejmě bylo append()


jak to napsat v pythonu je mi zatím záhadou.
Doufám že pomůžete.

Nahlásit jako SPAM
IP: 82.100.0.–
Blujacker
~ Moderátor
0
Grafoman
20. 2. 2008   #2
-
0
-

já bych na tenhle konkrétní problém použil slovník:



slovnik={}
slovnik["30,30"]=[ ]
slovnik["30,30"].append()

ale jinak vnořené seznamy se dělají tak, že se do seznamu jednoduše vloží další seznam:


s=[]
s1=[]
s.append(s1)
s[0].append(5)
print s1

Nahlásit jako SPAM
IP: 213.220.226.–
Navštivte server Matematika pro každého
Najdete zde články zabývající se matematikou základních a středních škol a databázi hlavolamů.
Pro vyzkoušení Vaš
Anonymní uživatel
~ Anonymní uživatel
0 příspěvků
21. 2. 2008   #3
-
0
-

To Blujacker : Fank ju very muč!

S těma slovníka sem to taky zkoušel - nebo resp. moc sem to nezkoušel, protože sem to chápal tak že do nich nemůžeš dát typ seznam.
A vnořené seznamy sem taky vytvářel, ale nejspíš poněku špatně a tak mi

s[0].append(5)


Přidávalo seznam ne do vnořeného seznamu - ale do seznamu nadřazeného.

Nahlásit jako SPAM
IP: 82.100.0.–
Architekt0
Super člen
5. 3. 2008   #4
-
0
-

Já bych použil dvourozměrný slovník obsahující seznamy hvězd. Asi takto:



sky = {}
for x in range(30, 390, 30):
sky[x] = {}
for y in range(30, 390, 30):
sky[x][y] = []

Pro další využití je to asi nejlépe srozumitelné řešení, tedy pokud si na to nechceš napsat třídu.

Naplnění náhodnými hvězdami např.:


import random

starID = 0

for x in sky.keys():
for y in sky[x].keys():
for i in range(random.randint(1, 10)):
posX = x - random.randint(0, 30)
posY = y - random.randint(0, 30)
starID = starID + 1
sky[x][y].append((starID, posX, posY))


a výpis hvězd z určitého kvadrantu:


for star in sky[60][120]:
print "Star: %s @ x=%s,y=%s" % star

Nahlásit jako SPAM
IP: 213.192.22.–
Python + Django + PostgeSQL = spokojený vývojář :-)
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý