如何替换列表中除最后一项之外的所有项目

时间:2015-04-12 15:35:59

标签: python list

我有一些列表,例如[1,3,5,2], [2,3], [5,3,2,5]等等。我想要修改它们以隐藏除最后一个之外的所有数字,例如[x,x,x,2],[x,3],[x,x,x,5]。我试过像:

lists = [[1,3,5,2],[2,3],[5,3,2,5]]
for list in lists:
    new_list = [ i = 'x' for i in list[:-1]]

4 个答案:

答案 0 :(得分:5)

for l in lists:
    l[:-1] = ['x'] * (len(l) - 1)

答案 1 :(得分:1)

您可以通过[-1]索引获取最后一个元素,然后创建一个X列表,然后添加到最后一个元素:

>>> [[['X' for _ in li[:-1]]+[li[-1]]]for li in lists]
[[['X', 'X', 'X', 2]], [['X', 3]], [['X', 'X', 'X', 5]]]

答案 2 :(得分:1)

可能是

>>> [['x'  for _ in L[:-1]] + [L[-1]] for L in lists]
[['x', 'x', 'x', 2], ['x', 3], ['x', 'x', 'x', 5]]

或更好,如Shashank所示:

>>> [['x'  for _ in L[:-1]] + L[-1:] for L in lists]
[['x', 'x', 'x', 2], ['x', 3], ['x', 'x', 'x', 5]]

答案 3 :(得分:0)

另一种方式:

lists = [[1,3,5,2],[2,3],[5,3,2,5]]
lists = [list('x'*(len(l)-1) + str(l[-1])) for l in lists]
# OUT: [['x', 'x', 'x', '2'], ['x', '3'], ['x', 'x', 'x', '5']]

请注意,这会将每个列表中的最后一个数字转换为字符串,这可能是您想要的也可能不是。