簡體   English   中英

元組到字符串格式

[英]tuple to string formatting

經過一定的計算,我得到的輸出是:

('      ','donor','       ','distance')  

('      ','ARG','A','43','  ','3.55')  
('      ','SOD','B',93', '  ','4.775')  
('      ','URX','C',33', '   ','3.55')

當我打算變得像:

  donor            distance
    ARG A 43         3.55
    SOD B 93         4.77
    URX C 33         3.55

我得到的東西是一個元組,但是我很困惑如何根據我的需求將該元組變成格式正確的外觀。 請給個想法...謝謝。

在每個元組上使用str.join()

' '.join(your_tuple)

在打印之前。

您可以使用for循環str.join

lis = [
    ('     ','donor','    ','distance'),
    ('      ','ARG','A','43','  ','3.55'),
    ('      ','SOD','B','93', '  ','4.775'),
    ('      ','URX','C','33', '  ','3.55')
]

for item in lis:
    print " ".join(item)

輸出:

 donor      distance
   ARG A 43    3.55
   SOD B 93    4.775
   URX C 33    3.55

如果您的數據如下所示

data = [
    ('      ', 'donor', '       ', 'distance'),
    ('      ', 'ARG', 'A', '43', '       ', '3.55'),
    ('      ', 'SOD', 'B', '93', '       ', '4.775'),
    ('      ', 'URX', 'C', '33', '       ', '3.55')
]

那你就可以

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

聽起來您想使用格式字符串 例如,假設您沒有在項目中存儲填充字符串:

print "{0} {1} {2}   {3:>10.2f}".format(*item)

您可以在格式字符串中指定記錄的每個字段的准確格式(包括寬度和對齊方式)。 在此示例中,第四個字符串右對齊以適合10個字符,小數點右邊顯示2位數字。

使用數據的示例:

>>> x = (('      ','ARG','A','43','  ','3.55'),('      ','SOD','B','93', '  ','4.775'),('      ','URX','C','33', '   ','3.55'))
>>> f = "{0:3s}{1:1s}{2:2s} {3:>10.3f}"
>>> for item in x: print f.format(item[1], item[2], item[3], float(item[5]))
...
ARGA43      3.550
SODB93      4.775
URXC33      3.550

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM