如何根据 python 列表中重复元素的索引创建新的 python 列表

How to create a new python list based on index of a recurring element in python List

我正在使用一个 python 列表,它看起来像-

['',  'tenantspace', 'SYSCode', 'CodeName', 'AttributeValue2', 'AttrDate', '',  'tenantspace', 'SYSCode', 'CodeName', 'AttributeValue2', 'AttrDate', '',  'tenantspace', 'SYSCode', 'CodeName', 'AttributeValue3', 'AttrDate', '',  'tenantspace', 'SYSCode', 'CodeName', 'AttributeValue4', 'AttrDate']

这是以下元素的补充(保证),'SYSCode'是整个列表中的固定值。

'',  'tenantspace', 'SYSCode', 'CodeName', 'AttributeValue', 'AttrDate'

我想创建一个新列表,其中只包含以下元素。由于 'SYSCode' 是整个列表中的固定值,因此我试图将其用作索引。 AttributeValue 保证在 SYSCode Index + 2。如何在下面检索另一个列表?

['AttributeValue1','AttributeValue2','AttributeValue3','AttributeValue4']

你可以通过列表推导来实现:

ls = ['',  'tenantspace', 'SYSCode', 'CodeName', 'AttributeValue1', 'AttrDate', '',  'tenantspace', 'SYSCode', 'CodeName', 'AttributeValue2', 'AttrDate', '',  'tenantspace', 'SYSCode', 'CodeName', 'AttributeValue3', 'AttrDate', '',  'tenantspace', 'SYSCode', 'CodeName', 'AttributeValue4', 'AttrDate']

res = [ls[i + 2] for i in range(len(ls)) if ls[i] == 'SYSCode']

结果如下:

['AttributeValue1', 'AttributeValue2', 'AttributeValue3', 'AttributeValue4']