我有一个ip地址列表:
ip_list = ['10.7.0.151', '10.7.0.152', '10.7.0.153', '10.7.0.154', '10.7.0.155', '10.7.0.156', '10.7.0.157', '10.7.0.158']
我需要插入6个null元素和' Total'在所有ip地址元素之后的相同列表中:
ip_list = ['10.7.0.151', '', '', '', '', '', '', 'Total',
'10.7.0.152', '', '', '', '', '', '', 'Total',
. . .
'10.7.0.158', '', '', '', '', '', '', 'Total']
有人可以建议是否有任何方式以上述方式插入元素?或者我需要拿这个硬编码列表?
答案 0 :(得分:2)
列表理解应该这样做。通过将新项添加到ip创建一个新的iterable,然后在理解中用嵌套for解包:
var index = 0;
var data = new FormData();
data.append("datalist", JSON.stringify(formInfo)); //list of objects
data.append("form", JSON.stringify(headerInfo)); //object
var images = document.getElementsByClassName("ImageUpload");
for (var i = 0; i < images.length; i++){
var files = $(images[i]).prop("files");
if (files != null && files.length > 0){
for (var e = 0; e < files.length; e++){
//append the image with a filename
data.append("image" + ++index, files[e]);
}
}
}
UpdateData(data);
function UpdateData(datalist) {
$.ajax({
url: '@Url.Action("UpdateData", "Home")',
type: "POST",
cache: false,
contentType: false,
processData: false,
datatype: "JSON",
data: datalist,
success: function (result) {
//do stuff
}
});
}
答案 1 :(得分:0)
我会产生第二个列表,通过迭代第一个列表并在每个传递上附加必要的元素:
original_list = ['1.2.3.4', '5.6.7.8']
extended_list = []
for item in original_list:
extended_list.append(item)
for i in xrange(6): extended_list.append('')
extended_list.append('Total')
有一千个聪明的单行可以实现同样的目标,但这很简单,也很灵活。
答案 2 :(得分:0)
map
和reduce
from functools import reduce # python3+
reduce(lambda m,n: m+n, map(lambda x: [x]+['']*6+['Total'], ip_list))
我希望这会有所帮助。