首页 > 解决方案 > 创建依赖于另一个列表的列表

问题描述

我有一个包含足球转会年龄的列表。每次从转入俱乐部和转出俱乐部的转会变化"Age"都出现在列表中。

因此,我想创建一个新列表,其中"in"包含"out"要标记的元素以进行传输。

ages = ["Age", "23", "20", "18", "Age", "23", "14", "Age", "35", "32", "24", "Age", "35"]

预期输出:

in_out = ["Age", "in", "in", "in", "Age", "out", "out", "Age", "in", "in", "in", "Age", "out"]

非常感谢任何帮助!

标签: pythonlist

解决方案


您可以尝试使用单行列表理解:

print([['out', 'in'][ages[:i].count('Age') % 2] if v != 'Age' else v for i, v in enumerate(ages)])

或者您可以尝试使用 for 循环:

ages = ["Age", "23", "20", "18", "Age", "23", "14", "Age", "35", "32", "24", "Age", "35"]
x = 'out'
for i, v in enumerate(ages):
    if v == 'Age':
        x = ['in', 'out'][x == 'in']
    else:
        ages[i] = x

print(ages)

两个输出:

['Age', 'in', 'in', 'in', 'Age', 'out', 'out', 'Age', 'in', 'in', 'in', 'Age', 'out']

推荐阅读