Python:如何返回相同的数组,其中每行中的第I个元素都被删除?
假设我有一个列表:Python:如何返回相同的数组,其中每行中的第I个元素都被删除?,python,list,Python,List,假设我有一个列表: [[1,2,3,4,5], [11,22,33,44,55], [111,222,333,444,555]] 如果给定任何I,我如何简单地返回相同的列表,其中每行的第I个元素被删除? 例如,如果i=2,我们得到: [[1,2,4,5],[11,22,44,55],[11122244555] 我试过: 切片,但遇到了类似于list[0:i]的问题,当i=0时失败。 使用my_list.index(i)获取索引值,但此操作失败,因为函数希望匹配字符串 提前感谢。您可以del第
[[1,2,3,4,5], [11,22,33,44,55], [111,222,333,444,555]]
如果给定任何I,我如何简单地返回相同的列表,其中每行的第I个元素被删除?例如,如果i=2,我们得到:
[[1,2,4,5],[11,22,44,55],[11122244555]
我试过:切片,但遇到了类似于
list[0:i]
的问题,当i=0时失败。使用
my_list.index(i)
获取索引值,但此操作失败,因为函数希望匹配字符串
提前感谢。您可以
del
第i项
i = 2
for x in my_list:
del x[i]
...
return my_list # Same list reference
输出:
[[1, 2, 4, 5], [11, 22, 44, 55], [111, 222, 444, 555]]
您可以删除第i项
i = 2
for x in my_list:
del x[i]
...
return my_list # Same list reference
输出:
[[1, 2, 4, 5], [11, 22, 44, 55], [111, 222, 444, 555]]
据我所知,您不需要修改原始列表,您可以使用原始列表的副本,其中每个内部列表的第I个元素都会弹出。列出理解和片段来解救
def pop_ith(lst, i):
return [x[0:i] + x[i+1:] for x in lst]
>>> a = [[1,2,3,4,5], [11,22,33,44,55], [111,222,333,444,555]]
>>> pop_ith(a,1)
[[1, 3, 4, 5], [11, 33, 44, 55], [111, 333, 444, 555]]
>>> pop_ith(a,0)
[[2, 3, 4, 5], [22, 33, 44, 55], [222, 333, 444, 555]]
>>> pop_ith(a,4)
[[1, 2, 3, 4], [11, 22, 33, 44], [111, 222, 333, 444]]
>>> pop_ith(a,6)
[[1, 2, 3, 4, 5], [11, 22, 33, 44, 55], [111, 222, 333, 444, 555]]
据我所知,您不需要修改原始列表,您可以使用原始列表的副本,其中每个内部列表的第I个元素都会弹出。列出理解和片段来解救
def pop_ith(lst, i):
return [x[0:i] + x[i+1:] for x in lst]
>>> a = [[1,2,3,4,5], [11,22,33,44,55], [111,222,333,444,555]]
>>> pop_ith(a,1)
[[1, 3, 4, 5], [11, 33, 44, 55], [111, 333, 444, 555]]
>>> pop_ith(a,0)
[[2, 3, 4, 5], [22, 33, 44, 55], [222, 333, 444, 555]]
>>> pop_ith(a,4)
[[1, 2, 3, 4], [11, 22, 33, 44], [111, 222, 333, 444]]
>>> pop_ith(a,6)
[[1, 2, 3, 4, 5], [11, 22, 33, 44, 55], [111, 222, 333, 444, 555]]
使用
del
是否会对原始列表造成一个“副作用”?是的,是的。如果需要在适当的位置删除某个元素,则始终需要该副作用。如果你是指我在另一个答案下面的评论,我的意思是,如果列表理解在原始列表中引入了副作用,则不建议进行列表理解。我们在其他地方再次使用该列表是什么?:)如果不问新问题,我想以后再使用该列表怎么办?使用del
是否会对原始列表产生一个可怕的“副作用”?是的,是的。如果需要在适当的位置删除某个元素,则始终需要该副作用。如果你是指我在另一个答案下面的评论,我的意思是,如果列表理解在原始列表中引入了副作用,则不建议进行列表理解。我们在其他地方再次使用该列表是什么?:)不用问新问题,如果我想以后再使用列表怎么办?这很好。非常感谢你的观点。这很好。非常受欢迎的观点。