gpt4 book ai didi

python - 如何优雅地分解一个长字符串

转载 作者:太空宇宙 更新时间:2023-11-04 10:41:33 24 4
gpt4 key购买 nike

你看,我已经看到这个网站上提供的许多答案都涉及我的问题的各个方面。 [上述] 答案通常提供已经存在的示例,这些示例太基础而无用——至少对我而言。但是,嘿,也许我把它复杂化了。

这是原来的长线:

    for i in range(2, l + 1):
job_count_array["//form[@id='SubAvailSelectForm']/font/table[2]/tbody/tr[%d]/td[1]/small" % i] = sel.get_text("//form[@id='SubAvailSelectForm']/font/table[2]/tbody/tr[%d]/td[1]/small" % i)

这是我实现“长线延续”礼仪的尝试(正如我发现的 2007 年的 pycon 讲义所概述的 here ):

    for i in range(2, l + 1):
job_count_array["//form[@id='SubAvailSelectForm']/font/table[2]/ \
tbody/tr[%d]/td[1]/small" % i] = sel.get_text("/ \
/form[@id='SubAvailSelectForm']/font/table[2]/tb \
ody/tr[%d]/td[1]/small" % i)

我的尝试是否会 (a) 被解析器正确解释和/或 (b) 是否会被任何有用的贡献者变得更“漂亮”或更有效?谢谢。

最佳答案

我会选择以下两种选择之一:

for i in range(2, l + 1):
replace_index = "//form[@id='SubAvailSelectForm']/font/table[2]/tbody/tr[%d]/td[1]/small" % (i,)
job_count_array[replace_index] = sel.get_text(replace_index)

首先,您使用了两次相同的长字符串,因此请使用 replace_index 代替它。这使代码更短,并保证两者之间没有任何难以发现的小错别字。

for i in range(2, l + 1):
replace_index = ("//form[@id='SubAvailSelectForm']/"
"font/table[2]/tbody/tr[%d]/td[1]/small") % (i,)
job_count_array[replace_index] = sel.get_text(replace_index)

其次,您可以使用“括号内字符串的自动串联”技巧,而不是字符串的行尾转义。我发现这样阅读起来更容易。

另外值得注意的是使用 (%i,) 而不是 %i 来格式化字符串。事实证明,在我过去,将单个字符串格式化参数设置到元组中是有益的,这样将来添加其他参数就更容易了,而且在字符串格式化参数的呈现方式上保持一致也很好。

关于python - 如何优雅地分解一个长字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20367386/

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