gpt4 book ai didi

python - 操作 Python 列表中的元素

转载 作者:行者123 更新时间:2023-11-30 22:10:54 25 4
gpt4 key购买 nike

我有一个奇怪的要求,我需要根据某些规则操作列表的内容。

我的列表如下:

lst = [
'%s###timestamp',
"TRANSLATE(%s, ',', '')###sales",
"TRANSLATE(%s, ',', '')###units",
"TRANSLATE(%s, ',', '')###counting_units",
"TRANSLATE(%s, ',', '')###standard_units"]

根据要求,每个 '%s' 都必须替换为 'SPLIT(expld '),最终结果如下:

res = [
"""SPLIT(expld, "###")[0] AS timestamp""",
"""TRANSLATE(SPLIT(expld, "###")[1], ',', '') AS sales""",
"""TRANSLATE(SPLIT(expld, "###")[2], ',', '') AS units""",
"""TRANSLATE(SPLIT(expld, "###")[3], ',', '') AS counting_units""",
"""TRANSLATE(SPLIT(expld, "###")[4], ',', '') AS standard_units"""]

其中 [0]、[1]、[2] 等表示列表的索引。

为什么我需要像这样创建“res”,因为我稍后需要这个列表来构建 Hive 查询。

到目前为止,在我的尝试中,我刚刚能够用 'SPLIT(expld ') 替换 '%s' 值,这很简单。

splitExpr = [w.replace('%s', 'SPLIT(expld ') for w in lst]

我仍在尝试弄清楚在这种情况下如何才能获得所需的结果。

最佳答案

res = [w.replace('###', ' AS ').replace('%s', 'SPLIT(expld, "###")[{}]'.format(i)) for i, w in enumerate(lst)]

使用枚举函数同时获取索引和字符串。在您建议的拆分之前,我还用“AS”替换了“###”。

像这样的列表推导式很简洁,但您可能会考虑使用常规 for 循环以获得更具可读性的代码。

关于python - 操作 Python 列表中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51575647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com