Python循环中字符串拼接问题:多值拼接插入+分隔符实现咨询
Python循环字符串拼接分隔符问题解决方案
问题原因
你的代码在每次拼接单条内容后都追加了+,最终生成的字符串末尾会多出一个多余的分隔符,无法得到预期格式。同时原有代码还存在print"-------"的Python3语法错误,需要补充括号。
最优解决方案
Python中处理带分隔符的字符串拼接,推荐先把所有片段存入列表,最后用str.join()方法完成拼接,该方法会自动在列表元素之间插入分隔符,不会产生首尾多余符号,性能也远高于循环拼接字符串。
修改后的完整代码如下:
mc1 = mydb.cursor() mc2 = mydb.cursor() mc1.execute("SELECT * FROM pdf WHERE id_primarie = 1 LIMIT 10") myresult = mc1.fetchall() for x in myresult: id_pdrimarie = x[1] id_pdf = x[0] sql = "SELECT * FROM proprietari WHERE id_pdf = %s" adr = (id_pdf, ) mc2.execute(sql, adr) result = mc2.fetchall() # 初始化空列表存拼接片段 prop_list = [] for y in result: nume = y[3] prenume = y[4] nume_firma = y[29] if nume == "": # 拼接当前条内容加入列表 item = f"{nume} {prenume}" prop_list.append(item) print("-------") else: prop_list.append(nume_firma) # 用分隔符拼接所有列表元素 prop = ' + '.join(prop_list) print(prop)
注:你当前的判断逻辑为
nume为空时拼接姓名,不为空时拼接公司名,若和实际业务逻辑不符,可以自行调整if的判断条件。
可选兼容方案
如果你不想修改原有拼接逻辑,也可以在循环结束后去掉末尾多余的分隔符,但该方法不推荐,存在误删内容末尾本身带有的加号或空格的风险:
# 循环拼接完成后执行 prop = prop.rstrip(' + ')
内容的提问来源于stack exchange,提问作者CoderCoder42
相关产品推荐
相关产品推荐

