Portál AbcLinuxu, 5. listopadu 2025 07:09
%slovnik = {}
@pole = ['a',1,'b',2]
%slovnik = @pole
(nebo tak nějak - už zapomínám)
jak na to v pythonu?
Díky
To zapomínání je vidět
Přiřazení %slovnik = {} v perlu dopadne asi nějak takto:
%slovnik = {};
use Data::Dumper;
print Dumper(\%slovnik);
$VAR1 = {
'HASH(0x8152508)' => undef
};Jinak zbytek je v pohodě protože tím se ten první nesmysl přepíše
Jinak v perlu to jde ještě asi těmato dalšíma způsobama což ti asi utkvělo v paměti :
$hashref={@pole};
$hashref2={}; %$hashref2=@pole;Ale jak se to dělá v pythonu fakt netuším 
P.S.: Jinak moje oblíbené
@slovnik{@keys}=@valuestaky není špatné
slovnik = retezec.split(",")
def pairwise(iterable): "s -> (s0,s1), (s1,s2), (s2, s3), ..." a, b = itertools.tee(iterable) try: b.next() except StopIteration: pass return itertools.izip(a, b)nebo nejakou jeho modifikaci a vysledek pak prevest na dict. Kazdopadne chyba je podle me ne v tom jak to udelat, ale PROC to vubec delat.
DataInputs = "a,1,b,2,c,3"a kvůli další práci je IMHO nejvýhodnější právě slovník
DataInputs = {
'a':1,
'b':2,
'c':3,
}
dík za tip
s='a,1,b,2,c,3'
kvrest = s
d = {}
while True:
kvrest = kvrest.split(',', 2)
d[kvrest[0]] = kvrest[1]
try:
kvrest = kvrest[2]
except IndexError:
break
p = ['one', 1, 'two', 2, 'three', 3, 'four', 4]
keys = p[0::2] #liche
values = p[1::2] #sude
zipped = zip(keys, values)
slovnik = dict(zipped)
slovnik
{'four': 4, 'three': 3, 'two': 2, 'one': 1}
příznivci one-linerů to mohou napsat takto:
dict(zip(p[0::2], p[1::2]))
values = map(int, p[1::2]) #sudenebo v případě toho one-lineru
dict(zip(p[0::2], map(int, p[1::2])))
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.