Python 列表无法进入列表列表中的元素

Python list can't get into an element inside a list of list

我构建了一个 class,当我打印其中 len 为 150 的列表时。这是一个列表列表,如下所示:

[{'id': '1344125', 'date': '2022-01-16', 'money': '158.0', 'vat': '7.6', 'payment': 'PayPal'}], [{'id': '1234125', 'date': '2022-01-12', 'money': '124.0', 'vat': '12.12', 'payment': 'CC'}]]

当我尝试输入其中一个列表中的值时,出现错误

print(lst[0][1])

IndexError: list index out of range

为什么会这样?

data = [[{'id': '1344125', 'date': '2022-01-16', 'money': '158.0', 'vat': '7.6', 'payment': 'PayPal'}], [{'id': '1234125', 'date': '2022-01-12', 'money': '124.0', 'vat': '12.12', 'payment': 'CC'}]]

# type list
print(type(data))

# data
print(data[0][0])

# access element 'id' in data
print(data[0][0]['id'])

输出:

<class 'list'>

{'id': '1344125', 'date': '2022-01-16', 'money': '158.0', 'vat': '7.6', 'payment': 'PayPal'}

1344125

这是您的列表的样子:

[                  # outer list

    [              # inner list 1
        {}         # single element inside inner list 1
    ],

    [              # inner list 2
        {}         # single element insider inner list 2
    ],
    ...
]

由于所有内部列表都由一个项目组成,因此只能使用第 0 个索引访问该项目。使用任何其他索引都是非法的并抛出索引超出范围异常。

调试方法如下:

print(len(outer_list))
for inner_list in outer_list:
    print(len(inner_list))

因为你的列表超出了范围。您正在访问不存在的第二位值,因为 len(lst) 是 1,您可以使用 lst[0].

访问它

尝试使用 print(lst[0][0]['id'])。 第一个命名空间 [0] 给你 - [{'id': '1344125', 'date': '2022-01-16', 'money': '158.0', 'vat': '7.6' , 'payment': 'PayPal'}]

第二个命名空间 [0] 给你 {'id': '1344125', 'date': '2022-01-16', 'money': '158.0', 'vat': '7.6', 'payment': 'PayPal'}

和最后一个命名空间 ['id'] - 1344125