我有两个列表,如下所示。我需要从 after = 中提取值,即 xyz 和 .81。 我正在尝试为这两个列表制定一个通用的解决方案,或者为 future 制定一个通用解决方案。 截至目前,我正在加入并在列表中查找而不是拆分。但我觉得可以用更好的方式来完成。
a = ['.TITLE', "'=", 'xyz', 'vdd', '=', '0.81', 'temp', "-40'"]
b = ['.TITLE', "'$", 'abc', '=', 'xyz', 'vdd', '=', '0.99', 'temp', "125'"]
最佳答案
你可以使用 next()
用发电机:
a = ['.TITLE', "'=", 'xyz', 'vdd', '=', '0.81', 'temp', "-40'"]
a1 = iter(a)
for item in a1:
if '=' in item:
print next(a1)
打印:
xyz
0.81
请注意,如果 =
是最后一项,这将引发 StopIteration
错误。
你也可以使用 enumerate()
:
a = ['.TITLE', "'=", 'xyz', 'vdd', '=', '0.81', 'temp', "-40'"]
for i, j in enumerate(a):
if '=' in j:
print a[i+1]
打印:
xyz
0.81
如果 =
是最后一项,这将再次引发错误 (IndexError
)。
关于python - 过滤列表的优雅方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19493236/