$(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中不起作用。我应该怎么做?非常感谢您的帮助。
答案 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] = []