在for循环中附加多个列表|蟒蛇

时间:2020-09-25 07:04:13

标签: python python-3.x

$(document).ready(function() {

  //ajax data
  var data = [
    ["1", "12/09/2010", "Always", "Helping", 'Pending'],
    ["2", "21/09/2010", "Zubair", "Mukhtar", "Approved"],
    ["3", "08/09/2010", "Stack", "Overflow", "Pending"],
    ["4", "15/09/2010", "Corona", "Virus", "Reject"],
    ["5", "08/09/2010", "Foo", "Bar", "Approved"]
  ];

  //datatable
  var table = $('#datatable').DataTable({
    data: data,

    //you ajax request here

    //check status on columnDefs
    columnDefs: [{
      targets: 4,
      render: function(status, type, row, meta) {
        if (status == 'Pending') {
          status = '<td><span class="pending status">' + status + '</span></td>'
        } else if (status == 'Approved') {
          status = '<td><span class="approved status">' + status + '</span></td>'
        } else if (status == 'Reject') {
          status = '<td><span class="rejected status">' + status + '</span></td>'
        }
        return status;
      }
    }]
  });
});

在第二个for循环中,我想为N的值附加N1_x。我的意思是当x = 0时,应附加N1_0列表,当x = 1时,应附加Nx_1列表,依此类推。我尝试过这种方式,但它给出了一个错误,我认为变量在python中不起作用。我应该怎么做?非常感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

尝试使用eval(),这是示例。

eval('x = 5')只是声明一个值为5的变量x,这意味着Python会将eval()内的字符串作为python命令执行。

然后,这是解决方案。 {}将替换为x的值,然后整行将作为python命令执行。

for x in X:
    for i in np.arange(0,5,1):
        eval('N1_{}.append(N2[i]/math.sqrt(x+1))'.format(x))

答案 1 :(得分:0)

组织数据的便捷方法是通过字典。

您可以首先将其初始化为空字典:

N1 = {}

然后,无论您当前访问的是何处,例如N1_1,您都将使用N1[1]

由于您在内部循环中无法访问N1_x(这不起作用),您只需将其更改为使用N1[x]

        N1[x].append(N2[i]/math.sqrt(x+1))

另一个优点是可以进行初始化,例如:

N1_0 = []
N1_1 = []
...

尽管您可以将它们类似地硬编码为:

N1[0] = []
N1[1] = []
...

实际上,您可以在x的外部循环中使用一条语句来完成这些操作:

for x in X:
    N1[x] = []