我想从给定索引值的元组列表中删除元素。
输入:[(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]
要完成的任务:
删除给定索引处的项目:2,3
所需的输出: [(1,2),(3,4),(9,10)]
我尝试过以下代码:
list(numpy.delete(input, [3,2]))
但是我得到了以下输出:
[1, 2, 5, 6, 7, 8, 9, 10]
请建议我解决此案的可能方法。
答案 0 :(得分:3)
list.pop()将删除所选元素。它们必须以相反的顺序完成,以免改变后者的位置。
<?php
$result = $this->rawResponse;
$config = Array(
'input-xml' => 1,
);
$repairitfirst = tidy_repair_string($result, $config);
$willbearray = json_encode(simplexml_load_string($repairitfirst));
$jsonfromxml = $willbearray;
?>
答案 1 :(得分:1)
您可以使用del
:
del mylist[index]
答案 2 :(得分:0)
numpy
:指定多维数组的轴你对numpy所做的很接近,但是你使用了错误的轴。如果您指定axis=0
,则会获得所需的结果。
>>> import numpy as np
>>> l = [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]
>>> l = np.array(l)
>>> l
array([[ 1, 2],
[ 3, 4],
[ 5, 6],
[ 7, 8],
[ 9, 10]])
>>> np.delete(l, [2,3], axis=0)
array([[ 1, 2],
[ 3, 4],
[ 9, 10]])
对于逐步改变列表的操作,重要的是按索引的降序排列,例如[3, 2]
代替[2, 3]
:
使用pop()
>>> l = [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]
>>> l.pop(3)
(7, 8)
>>> l.pop(2)
(5, 6)
>>> l
[(1, 2), (3, 4), (9, 10)]
使用del
>>> l = [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]
>>> for i in [3, 2]:
... del l[i]
...
>>> l
[(1, 2), (3, 4), (9, 10)]
使用remove()
>>> l = [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10)]
>>> remove_list = [l[2], l[3]]
>>> remove_list
[(5, 6), (7, 8)]
>>> for r in remove_list:
... l.remove(r)
...
>>> l
[(1, 2), (3, 4), (9, 10)]