【发布时间】:2015-03-12 10:06:25
【问题描述】:
编辑:添加了问题的 (b) 部分
我有一个长字符串是这样的:
"a=x b=x c=x..."
a,b,c... 始终相同,而 x 则不同。我想要的是让我们说 b=x 但前提是 x 匹配特定的字符串。
到目前为止,我将字符串传递给一个列表,并用空格分隔值,如下所示:
['a=x', 'b=x', 'c=x'...]
a) 只有当 x="something_I_want" 时才能获得 b=x 的最 Pythonic 方式是什么? (已解决)
b) 对于给定的 b,获取 x 的方法是什么?换句话说,我想得到等于我已知值 b 的值。
(b) 的解决方案是:
k = "PROTO="
keep = [ele for ele in x.split() if ele.startswith(k)]
print str(keep[0]).split('=')[1]
类似于@Padraic Cunningham 在下面的答案中建议的内容。有没有更有效的方法来做到这一点?
【问题讨论】:
-
如果 x 等于你想要的值,你真正想要什么输出?
-
基本上,x值应该是一个具体的值,但有时不是。如果 x 值等于我想要的值,我想获取整个字符串。
-
那么你只需要 str.endswith
-
我编辑了我的答案,您可以理解所有内容或使用生成器表达式与下一个
标签: python string list parsing split