45 lines
1.8 KiB
Python
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)}"] |