如何用Python3从数字列表生成指定格式的带分隔符字符串?
解决字符串拼接错误的问题
错误原因
你嵌套使用join()的逻辑完全搞反了:str.join(iterable)的作用是用str作为分隔符,连接iterable里的所有元素。你先执行'Contains([saleID],"'.join(str(x) for x in list1)得到的是"1Contains([saleID],"2Contains([saleID],"3Contains([saleID],"4",接着用'" OR'去join这个字符串——这会把该字符串的每个字符都用" OR分隔开,自然会得到混乱的输出。
正确解法
先为列表里的每个数字生成对应的Contains([saleID],"x")片段,再用" OR\n"把所有片段连接起来即可:
list1 = [1, 2, 3, 4] # 生成每个元素对应的查询片段 query_parts = [f'Contains([saleID],"{num}")' for num in list1] # 用" OR\n"拼接所有片段 final_query = " OR\n".join(query_parts) print(final_query)
执行后输出就是你想要的格式:
Contains([saleID],"1") OR Contains([saleID],"2") OR Contains([saleID],"3") OR Contains([saleID],"4")
内容的提问来源于stack exchange,提问作者Tipo33
相关产品推荐
相关产品推荐

