Python 对于列表列表(我们称之为a),我想要一个不同的列表。详情见下文?

Python 对于列表列表(我们称之为a),我想要一个不同的列表。详情见下文?,python,python-3.x,list,Python,Python 3.x,List,假设我有一个列表 [[1,2,3,4,5,6], [2,4,6,8,9,10], [10, 11, 12, 13, 14, 15]] 现在我想要一个列表,例如 [[1,2,0,0,0,0], [2,4,0,0,0,0], [10, 11, 0, 0, 0, 0]] 有没有一种快速的方法来代替使用循环来修改它。多谢各位 编辑:很抱歉造成混乱。我喜欢保留前x个元素,并将其余元素修改为0。 每个子列表的大小都相同。您可以试试这个 for lst in my_list: lst[2:]=[0

假设我有一个列表

[[1,2,3,4,5,6], [2,4,6,8,9,10], [10, 11, 12, 13, 14, 15]]
现在我想要一个列表,例如

[[1,2,0,0,0,0], [2,4,0,0,0,0], [10, 11, 0, 0, 0, 0]]
有没有一种快速的方法来代替使用循环来修改它。多谢各位

编辑:很抱歉造成混乱。我喜欢保留前x个元素,并将其余元素修改为0。 每个子列表的大小都相同。

您可以试试这个

for lst in my_list:
    lst[2:]=[0,0,0,0]
print(my_list)
#[[1, 2, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0], [10, 11, 0, 0, 0, 0]]
for lst in my_list:
    lst[-4:]=[0,0,0,0]
如果列表中的列表大小不同,并且只想将最后4项更改为0,请尝试此操作

for lst in my_list:
    lst[2:]=[0,0,0,0]
print(my_list)
#[[1, 2, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0], [10, 11, 0, 0, 0, 0]]
for lst in my_list:
    lst[-4:]=[0,0,0,0]
编辑:


我希望保留前x个元素,并将其余元素更改为0

试试这个

lst[x-len(lst):]=[0 for i in range(len(lst)-x)] #suggested by dcg

你可以试试这个

for lst in my_list:
    lst[2:]=[0,0,0,0]
print(my_list)
#[[1, 2, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0], [10, 11, 0, 0, 0, 0]]
for lst in my_list:
    lst[-4:]=[0,0,0,0]
如果列表中的列表大小不同,并且只想将最后4项更改为0,请尝试此操作

for lst in my_list:
    lst[2:]=[0,0,0,0]
print(my_list)
#[[1, 2, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0], [10, 11, 0, 0, 0, 0]]
for lst in my_list:
    lst[-4:]=[0,0,0,0]
编辑:


我希望保留前x个元素,并将其余元素更改为0

试试这个

lst[x-len(lst):]=[0 for i in range(len(lst)-x)] #suggested by dcg


以下代码是您需要的:

if __name__ == "__main__":
    # list modification with zeros
    alist = [[1,2,3,4,5,6], [2,4,6,8,9,10], [10, 11, 12, 13, 14, 15]]

    for x in alist: 
        x[2:] = [0]*4

    print(alist)
输出:

[[1, 2, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0], [10, 11, 0, 0, 0, 0]]

以下代码是您需要的:

if __name__ == "__main__":
    # list modification with zeros
    alist = [[1,2,3,4,5,6], [2,4,6,8,9,10], [10, 11, 12, 13, 14, 15]]

    for x in alist: 
        x[2:] = [0]*4

    print(alist)
输出:

[[1, 2, 0, 0, 0, 0], [2, 4, 0, 0, 0, 0], [10, 11, 0, 0, 0, 0]]

你到底在找什么?是否要将特定元素替换为0?请编辑您的问题,使其完全符合标准。请在问题中添加您的逻辑。是否需要将每个子列表的最后4个元素归零?我希望保留前x个元素,并将其余元素更改为0。谢谢。每个子列表的大小都一样吗?你到底在找什么?是否要将特定元素替换为0?请编辑您的问题,使其完全符合标准。请在问题中添加您的逻辑。是否需要将每个子列表的最后4个元素归零?我希望保留前x个元素,并将其余元素更改为0。谢谢。每个子列表的大小是否相同?lst[x-lenlst:=[0代表范围内的i lenlst-x]或lst[x:=[0]*lenlst-x@dcg@dcg将它们添加到answerlst[x-lenlst:][0代表范围lenlst-x中的i]或lst[x:][0]*lenlst-x中@dcg@dcg将它们添加到回答中使用i为什么不使用enumerate的原因是什么?和x[2:]=。。。修改后的列表不需要再次执行alist[i]=x。我使用i适当地解析和修改列表。不需要使用i。x[2:][0]*4就足够了。我明白了,你的意思。谢谢,我做了适当的修改。使用I为什么不使用enumerate的原因是什么?和x[2:]=。。。修改后的列表不需要再次执行alist[i]=x。我使用i适当地解析和修改列表。不需要使用i。x[2:][0]*4就足够了。我明白了,你的意思。谢谢,我做了适当的修改。