簡體   English   中英

在Python 3.3中處理函數中的輸入

[英]Processing input in a function in Python 3.3

我對格式化輸出有疑問。 可能很簡單,但是我已經從事了大約10個小時的工作,所以我不知道為什么它行不通

elif command.startswith("TOP") and len(command) > 3:
        digi_trans = str.maketrans('', '', string.digits)
        char_trans = str.maketrans('', '', string.ascii_letters)
        bracket_trans = str.maketrans('', '', "[']")
        subset = command.translate(digi_trans)[3:]
        if subset == "EDITORS":
            top_names = []
            count = 0
            count_limit = int(command.translate(char_trans))
            top_names = sorted(name_temp.items(), key=lambda x:x[1], reverse=True)
            largest = heapq.nlargest(count_limit, top_names, key=operator.itemgetter(1, 1))
            print(largest)

這是我的代碼中困擾我的部分。 top_names列表只是兩個項目對(一個名稱和一個值)的排序列表。

當前輸出(假設我想要命令中的前2個值):

[('Tzartzam', [16]), ('Quercusrobur', [14])]

我希望它輸出如下內容:

--------------------
Tzartzam        [16]
Quercusrobur    [14]
--------------------

有趣的是,我的程序中已經有一部分功能幾乎完全相同,但是我只是無法理解自己在做些什么,所以如果有人能指出正確的方向,我將不勝感激。 :(

您可以使用調整和調整:

top_names=[('Tzartzam', [16]), ('Quercusrobur', [14])]
print "--------------------"
for n in top_names:
    print n[0].ljust(16),str(n[1][0]).rjust(3)
print "--------------------"

輸出:

--------------------
Tzartzam          16
Quercusrobur      14
--------------------

暫無
暫無

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

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