我有一些列表,例如[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]]
答案 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']]
请注意,这会将每个列表中的最后一个数字转换为字符串,这可能是您想要的也可能不是。