可变长度列表列表

时间:2015-04-22 18:40:47

标签: python list

我希望有不同长度的N个列表,并从列表中引用它们。这可能吗。例如,我可以硬编码:

 $.each(data, function(key,value){
    stringa +="<option value=\""+key+"\">"+key+"</option>";
    if(t==0){
    tmp[0] = key;
    }
    t++;
    });
    $("#select-1").html($("#select-1").html()+stringa);

然后直接引用它们,但我希望能够调用list1 = [0, 2, 3, 4, 1] list2 = [1, 4, 2, 1] list4 = [1, 1, 0] 这样的内容并获得与list[1][1]返回相同的内容或让list1[1]返回错误list[3][2]未定义(因此list3的长度为0)。

这可能吗?

5 个答案:

答案 0 :(得分:4)

  

我正在寻找一种动态创建列表列表的方法,然后在以后附加到各种列表中。

你可以尝试初始化像

这样的列表
lists = [[] for _ in xrange(3)]

现在,在分配元素时,您只需执行以下操作:

lists[0].append(value)
lists[2].append(value2)

将值添加到列表中的第一个子列表,将值2添加到第三个子列表等等。

您也可以使用dict方法。

>>> data = {'list%i' % i : [] for i in range(4)}
>>> data
{'list0': [], 'list1': [], 'list2': [], 'list3': []}

所以你可以用这种方式在列表中追加项目

>>> data['list1'].append(1)
>>> data
{'list0': [], 'list1': [1], 'list2': [], 'list3': []}

答案 1 :(得分:0)

也许lists = [list1, list2, list3]

答案 2 :(得分:0)

我不确定这是否是您要查找的内容,但它会处理您尝试访问未定义列表的实例。

list_hash = {
    "list1": [0,2,3,4,1],
    "list2": [1,4,2,1],
    "list4": [1,1,0]
}

答案 3 :(得分:0)

这是可能的。但你不应该使用这个

list1=[1, 2, 3, 4]
list2=[2,4,5]

def updateList():
  scope=dir() # gets all defined items
  itms=[]
  list={}
  for itm in scope:
    if itm[0:4]=="list": itms.append(itm)
  for itm in itms:
    try:
      indx=int(itm[4:])
      list[indx]=eval(itm)
    except:
      pass
updateList()

现在,您将定义这样的列表,因为您正在搜索整个范围并匹配符合条件的字符串。即list1 list2 list4等它没有list3,如果你添加list3,将不会更新

为此,每次添加列表*时都必须调用updateList()。但是会对性能产生负担。您可以通过排除已定义的变量来提高性能。 :)希望它有所帮助

答案 4 :(得分:0)

你可以使用另一个数组,如下面的

来做到这一点
$("form").submit( function()
{
    $("button[type='submit']").attr("disabled", true);

});

所以现在你可以通过列表访问了。

也许它可以解决您的问题并为您提供帮助。