我有这样的数据:

[[1, 100313], [2, 100313], [1, 100314], [3, 100315]]

所有内容都是字符串格式(否则我无法迭代)
我想运行一个for循环,它可以查看这些元素,如果它看到列表中的第二个项是100313,则使用[0,0,1]进行扩展所以最终看起来是这样的:
[[1, 100313, 0, 0, 1], [2, 100313, 0, 0, 1], [1, 100314], [3, 100315]]

我运行了一个for循环,如下所示:
for x, y in list:
    if y == 100313:
        list.extend([0,0,1])

它根本不会改变名单为什么?

最佳答案

您可以使用以下示例中的list comprehension完成此操作:

a = [[1, 100313], [2, 100313], [1, 100314], [3, 100315]]

final = [k+[0,0,1] if k[1] == 100313 else k for k in a]

print(final)

输出:
[[1, 100313, 0, 0, 1], [2, 100313, 0, 0, 1], [1, 100314], [3, 100315]]

更新:
您要求在一个if ... else中添加另一个list comprehension块。你可以这样做:
a = [[1, 100313], [2, 100313], [1, 100314], [3, 100315]]
final = [k+[0,0,1] if k[1] == 100313 else k+[0,1,0] if k[1] == 100314 else k for k in a]
print(final)

输出:
[[1, 100313, 0, 0, 1], [2, 100313, 0, 0, 1], [1, 100314, 0, 1, 0], [3, 100315]]

10-08 11:12