首页 > 解决方案 > 如何根据python列表中重复元素的索引创建新的python列表

问题描述

我正在使用一个看起来像的 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']

标签: pythonpython-2.7

解决方案


您可以通过列表理解来实现它:

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']

推荐阅读