jb_fr/scripts/多个字符串拼接为一个.py
2025-06-06 21:04:04 +08:00

45 lines
1.8 KiB
Python

def process(input_strings: list) -> list:
"""将多个字符串按位置拼接为 str1:str2:str3,...,支持自定义输入和输出分隔符"""
try:
if len(input_strings) < 4:
return ["错误:请至少输入两个字符串、一个输入分隔符和一个输出分隔符"]
# 提取分隔符
output_separator = input_strings[-1].strip() # 输出分隔符
input_separator = input_strings[-2].strip() # 输入分隔符
if not input_separator or not output_separator:
return ["错误:输入和输出分隔符不能为空"]
# 支持换行符
if input_separator == "\\n":
input_separator = "\n"
if output_separator == "\\n":
output_separator = "\n"
# 输入字符串(除去最后两个分隔符)
input_strings = input_strings[:-2]
if len(input_strings) < 2:
return ["错误:请至少输入两个字符串"]
# 分割每个字符串为列表
element_lists = []
for s in input_strings:
if not s.strip():
return ["错误:输入字符串不能为空"]
elements = [e.strip() for e in s.split(input_separator) if e.strip()]
element_lists.append(elements)
# 检查元素数量是否一致
length = len(element_lists[0])
if not all(len(elements) == length for elements in element_lists):
return ["错误:所有字符串的元素数量必须相同"]
# 按位置拼接
result = []
for i in range(length):
concatenated = ":".join(elements[i] for elements in element_lists)
result.append(concatenated)
# 使用指定的输出分隔符连接结果
return [output_separator.join(result)]
except Exception as e:
return [f"错误:{str(e)}"]