问题描述
我正在努力寻找一种将列表转换为字符串的方法。此列表是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 (将#修改为@)