/ Protiváha v otvorenom sezame - python-2.7, open-sesame

Protiváha v otvorenom sezame - python-2.7, open-sezam

Píšem inline_script v otvorenom sezame (python). Môže mi niekto povedať, čo je tu zlé (myslím, že je to niečo veľmi jednoduché, ale nemôžem ho nájsť)

BalanceList1 = range(1:7) + range(13:19) #does not work
if self.get("subject_nr") == "BalanceList1":

#here follows a list of commands

BalanceList2 = list(range(7:13))+list(range(19:25)) #does not work either
elif self.get("subject_nr") == "BalanceList2":

#other commands

odpovede:

1 pre odpoveď č. 1

V pythone 2.x môžete urobiť nasledovné:

BalanceList1 = range(1,6) + range(13,19)

ktorý vytvorí 2 zoznamy a pridá ich spolu BalanceList1:

[1, 2, 3, 4, 5, 13, 14, 15, 16, 17, 18]

V pythone 3.x, range nevráti a list už ale iterátor (a xrange je preč), musíte explicitne previesť na list:

BalanceList1 = list(range(1,6))+list(range(13,19))

Optimálnejším spôsobom, ako zabrániť vytvoreniu príliš veľa dočasných zoznamov, by bolo:

BalanceList1 = list(range(1,6))
BalanceList1.extend(range(13,19))  # avoids creating the list for 13->18

optimálnejšie ako: