簡體   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