首页 > 解决方案 > 如何使用 join() 输出?

问题描述

我想用 join() 输出字符串。我怎么能用这个?

这是我的代码。

data_list = [{'A': 'a', 'B': 'b', 'C': 'c'}, {'A': 'a', 'B': 'b', 'C': 'c'}]

A_list = set()
for data in data_list:
    A = data['A']
    A_list.add(A)


for A in A_list:
    B_list = []
    C_list = []
    for data in data_list:
        if data['A'] == A:
            B = data['B']
            C = data['C']
            B_list.append(B)
            C_list.append(C)



    print('\n[{}]'.format(A))
    print('' + '\n' .join(B_list) + ' host=' + ' '.join(C_list))

这是它的输出。

[a]
b
b host=c c

[a]
b
b host=c c

但我想得到如下结果。

[a]
b host=c
b host=c 

[A]
b host=c
b host=c 

我想如果我创建与“B”一样多的“主机”列表,那么我可以使用 join() 来插入“主机”,但实际数据比上面的要多得多,我不确定每个字典中有多少变量.

有任何想法吗?

此外,此输出将用于 ansible 库存文件。

谢谢你的帮助!

标签: python-3.xansible

解决方案


为什么需要加入?你不能只使用:

print(B_list[0]+' host='+C_list[0])

这将输出:

b host=c

这不是您要求的大写 b 和 c 但可以通过修改原始B_listand来实现C_list


提取多行:

for x in range(len(B_list)):
    print(B_list[x]+' host='+C_list[x])

推荐阅读