繁体   English   中英

替换 Python 3.x 中的列表括号

[英]Replace list brackets in Python 3.x

我有多个列表对象

例子:

data = [['id', 'host'], [1, '123']]

print(data)

Output:

[['id', 'host'], [1, '123']]

什么时候:

print(*data)

Output:

['id', 'host'] [1, '123']

什么时候:

print(*data, sep='\n')

或者

print('\n'.join(map(str, data)))

Output:

['id', 'host']
[1, '123']

如何在没有括号和逗号的情况下制作这样的 output:

id host
1  123

一个直接的 for 循环给出了你想要的 output:

data = [['id', 'host'], [1, '123']]
for d in data:
    print(*d)

如果这种方法有问题,那么在您的问题中并不明显。

如果您尝试生成str结果,您可以使用一对join调用将内部元素转换为str然后用空格连接,然后用'\n'连接这些行

data = [['id', 'host'], [1, '123']]
result = '\n'.join(' '.join(str(e) for e in d) for d in data)

您可以使用for 循环str.join()方法来执行此操作。

for sublist in data:
    print(" ".join(sublist))

这仅在您专门使用字符串类型数据时才有效,但出于您的目的,请尝试以下操作:

for sublist in data:
    print(" ".join([str(element) for element in sublist]))

你可以这样做:

print(*(f"{i:<4} {d}" for i,d in data),sep="\n")

id   host
1    123

这个对我有用。 感谢瑞恩海宁。

print('\n'.join(', '.join(str(e) for e in d) for d in data))

我在加入之前添加了“,”,因为我需要将 output 记录为 csv 格式。 如果没有这个逗号,它将不会在 csv 表中格式化我的 output

如果您想在一行中完成所有操作,则可以将列表理解与以下内容一起使用:

print('\n'.join([' '.join((str(itr[0]), str(itr[1]))) for itr in data]))

另一个单行:

print(*[' '.join((str(itr[0]), str(itr[1]))) for itr in data], sep='\n')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM