将列表从findall谓词转换为字符串序言

问题描述

我正在努力寻找一种将列表转换为字符串的方法。此列表是findall谓词的输出。

请参阅下面的代码。

mask = df1['MAT'].duplicated()
mask2 = df1['MAT'].map(df1.loc[mask,'D8'].eq('X').groupby(df1['MAT']).all())
mask = df1['SER'].eq('Yes') & ~mask & df1['D8'].eq('-') & mask2
df1['D99'] = np.where(mask,'X','-')
print (df1)
   MAT MAT_IN  SER D8 D99
0    X     A1  Yes  -   X
1    X     A2   No  X   -
2    X     A3   No  X   -
3    X     A4  Yes  X   -
4    Y     B1   No  -   -
5    Y     B2   No  -   -
6    Y     B3   No  -   -
7    Y     B4   No  -   -
8    Y     B5   No  -   -
9    Z     K1  Yes  -   -
10   Z     K2   No  -   -
11   Z     K3   No  X   -
12   Z     K4  Yes  X   -

我的输出

edge(a,b).
edge(a,c).
edge(b,c).
edge(c,d).
edge(c,e).
edge(d,e).
edge(f,g).
edge(g,h).

route(X,Z,[])    :-  edge(X,Z).
route(X,[Y|T]) :-  edge(X,Y),route(Y,T).

allways(X,Y) :- findall(E,(route(X,Y,E),write(E),nl),_).
%allways(X,with_output_to(atom(_),maplist(write,E)),atomic_list_concat(E,'',A),_),write(A).

预期产量

?- allways(a,e).
[b,c]
[b,c,d]
[c]
[c,d]

我尝试了不同的方法,使用with_output_to谓词和atomic_list_concat谓词将列表转换为字符串,但是没有任何效果。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)