芝麻开门平衡

Counterbalancing in open sesame

我正在芝麻开门写inline_script(python)。 谁能告诉我这里出了什么问题? (我觉得很简单,就是找不到)

当我将数字放入 List = [1,2,3,4,5,6,7] 时,第一行有效,但第二行无效 :(

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

在 python 2.x 中,您可以执行以下操作:

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

这将生成 2 个列表并将它们加在一起 ​​BalanceList1:

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

在 python 3.x 中,range 不再是 return 一个 list,而是一个迭代器(并且 xrange 消失了) ,您必须显式转换为 list:

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

避免创建过多临时列表的最佳方法是:

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

优于: