python - 过滤列表的优雅方式

标签 python python-2.7

我有两个列表,如下所示。我需要从 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/

相关文章:

python - 是否可以在 pandas 数据框中格式化字符串?

python - 无法通过在 Python 中搜索 csv 文件获得结果

python - 在 Python 中使用套接字发送加密字符串

0开头的Python数字

python-2.7 - 如何在 Python 2.x 中获取系统默认编码?

python - DRF TypeError __init__() 恰好接受 1 个参数(给定 2 个)

python - 计算 Pandas 数据帧中的动态时间扭曲距离

python - 使用 Python 从 csv 文件读取特定日期范围

python - 装饰类方法以构建方法注册表

python - PyWinAuto 打开应用程序,但不返回任何窗口对话框