Python 对于配置进行排列组合

2020-09-12 15:14:15 +08:00
 zckun

在造轮子之前问下有没有老哥知道这种或者类似的对于 xml 或其他配置的排列组合的库,谢谢

    <a val="1|2">
        <b val="3|4"/>
    </a>
    
    <!-- -->

    <a val="1">
        <b val="3"/>
    </a>
    <a val="1">
        <b val="4"/>
    </a>

    <a val="1">
        <b val="4"/>
    </a>
    <a val="1">
        <b val="3"/>
    </a>

    <a val="2">
        <b val="3"/>
    </a>
    <a val="2">
        <b val="4"/>
    </a>

    <a val="2">
        <b val="4"/>
    </a>
    <a val="2">
        <b val="3"/>
    </a>
1342 次点击
所在节点    Python
5 条回复
imn1
2020-09-12 15:32:50 +08:00
目的是?统计还是转换格式

转换格式搜 xml2csv,xml2dict,xml2json……等等
直接用 xml 统计的没留意

如果我做的话,这么有规律的格式,正则几行就可以 parse 并统计了
zckun
2020-09-12 15:42:54 +08:00
@imn1 不是,目的是将第一个 tag <a val="1|2"><b val="3|4"/></a> 按排列组合生成注释下面的 tags
oahebky
2020-09-12 15:47:00 +08:00
有不难,本来就有 xml 的库。

就是 读取 + 排列组合算法 + 生成。

排列组合算法到 leetcode 上找两道题刷一下,就能直接用。

如果有我没有 cover 到的地方可以说说看。
imn1
2020-09-12 15:53:37 +08:00
原来是生成,不是读取
没有轮子,但自己写不难

itertools.product 生成 value 的组合,然后逐行套到 xml 模板就是了

我爬虫有个函数就是这样,一个页码的 range+几个搜索条件,生成所有可能的 link 去爬
zckun
2020-09-12 15:55:57 +08:00
@imn1 刚刚从 stackoverflow 看到了,不过还是谢谢老哥
params = {
"a": [1,2],
"b": [3,4],
}
data = '<a val="{a}"><b val="{b}"/></a>'
for val in itertools.product(*params.values()):
ps = dict(zip(params.keys(), val))
d = data.format(a=ps['a'], b=ps['b'])
print(d)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/706389

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX