比如说:
list = { [1,2,3],[4,5,6],[3,4],[2,7,8,9] }
有没有办法在python中删除子列表并确保其他子列表索引保持不变。因此,例如,如果我要删除子列表[3,4],我可以确保[2,7,8,9]的索引在这种情况下保持为3吗?如果这是可能的话真的会有所帮助!谢谢!
答案 0 :(得分:2)
也许。这取决于你如何使用列表以及如何" listy"结果对象需要。
l = [ [1,2,3],[4,5,6],[3,4],[2,7,8,9] ]
您可以使用其他类似的替换子列表。然后你的代码必须知道在处理列表时忽略None。
print(l[3])
l[2] = None
print(l[3])
或者您可以将列表转换为dict并删除该成员。你仍然可以索引该对象,但由于它现在是一个字典,你的代码必须像对待一个字典一样对待它。
l = dict(enumerate(l))
print l[3]
del l[2]
print l[3]
这些技巧仅适用于某些特定环境。
答案 1 :(得分:1)
您可以删除| start_date | end_date | weekno | weekno |
|------------|------------|--------|--------|
| 01/01/1996 | 03/02/1996 | 1 | 5 |
| 05/02/1996 | 09/03/1996 | 6 | 10 |
| 11/03/1996 | 13/04/1996 | 11 | 15 |
| 15/04/1996 | 18/05/1996 | 16 | 20 |
| 20/05/1996 | 08/06/1996 | 21 | 23 | <- 23 is last week
and group only have
3 week instead of 5
中的元素并保留空子列表。
function mutation(arr) {
//return arr;
res = "";
for (var x=0; x<arr[1].split("").length; x++) {
if (arr[0].indexOf(arr[1].split("")[x]) !== -1) {
res += "t";
} else {
res += "f";
}
}
// res = ttt
if (res.indexOf("f") !== -1) {
return true;
} else {
return false;
}
}
mutation(["hello", "hey"]);
// this returns true instead of false
mutation(["floor", "loo"]);
// returns false instead of true
请注意,您不应将[3,4]
用作>>> lst = [[1,2,3],[4,5,6],[3,4],[2,7,8,9]]
>>> del lst[2][:]
>>> lst
[[1, 2, 3], [4, 5, 6], [], [2, 7, 8, 9]]
名称,因为list
是built in function
答案 2 :(得分:0)
但是您可以将值作为元组存储在索引中。首先制作一个包含索引和值的修改后的列表。然后你可以自由删除任何元素。
lst = [[1,2,3],[4,5,6],[3,4],[2,7,8,9]]
modified = list(enumerate(lst))
解释一下:
modified=[]
for i,v in enumerate(lst):
modified.append((i,v))
print modified
输出:
[(0, [1, 2, 3]), (1, [4, 5, 6]), (2, [3, 4]), (3, [2, 7, 8, 9])]