我想用join()输出字符串。我怎么能用这个?
这是我的代码。
data_list = [{‘A’:‘a’,‘B’:‘b’,‘C’:‘c’},{‘A’:‘a’,‘B’:‘b’,‘C’: ‘C’}]
A_list = set()对于data_list中的数据: 一个 …
你为什么需要加入?你不能使用:
print(B_list[0]+' host='+C_list[0])
这将输出:
b host=c
这不是您要求的大写字母b和c,但可以通过修改原件来制作 B_list 和 C_list 。
B_list
C_list
提取多行:
for x in range(len(B_list)): print(B_list[x]+' host='+C_list[x])
如果你打印出来的话可能会更清楚 repr 的 '' + '\n' .join(B_list) + ' host=' + ' '.join(C_list) 而不是直接打印。你得到
repr
'' + '\n' .join(B_list) + ' host=' + ' '.join(C_list)
'b\nb host=c c'
所以这就是加入了两个要素 B_list 用一个 "\n" 他们之间,然后插入 " host=" ,然后加入两个元素 C_list 用一个 " " 它们之间。当你打印它时, "\n" 变成换行符,你可以看到你得到的输出。
"\n"
" host="
" "
要获得您想要的输出,您需要匹配 对 B和C的。你可以这样做 元组 :
# ... before this loop is the same... for A in A_list: BC_list = [] for data in data_list: if data['A'] == A: # note, you're inserting B and C into the same element in the list BC_list.append( (data['B'], data['C']) ) print('\n[{}]'.format(A)) # now you can unpack the tuple for b, c in BC_list: print(b + ' host=' + c)
有更简洁的方法可以用更少的循环来编写它,比如 列表理解 但这应该让你更接近解决方案。