2016-01-20 98 views
-1

所以我有一個單詞列表,我想對其進行格式化,以顯示某種方式蟒蛇格式化代碼從列表

["car", "dinosaur", "cat", "Rat"] 

這是列表的一個例子。基本上,我想打印列表中的元素旁邊的數字1。格式化出現在我想通過最大的單詞進行分隔的地方。

dinosaur 1 
car  1 
cat  1 
Rat  1 

所以你可以看到1是如何出現在最長的單詞之後。問題是我如何從列表中設置格式。我正在使用的代碼是循環查找單詞列表以查找最長的單詞,然後爲每個較小的單詞添加空格以便與最大的單詞具有相同的長度。任何更簡單的方法呢?

+0

由於2.6還可以使用新格式的方法,例如: X =「{} {}'。格式(* s) –

回答

2

只要找到最長的單詞和格式化輸出:

max_length = len(max(words, key=len)) 
for word in words: 
    print "{0:{1}s} 1".format(word, max_length) 
+0

哇,甚至沒有想到,謝謝 –

+0

請注意,這個遞歸格式字符串給出了一個語法錯誤(Python 3.4)。 –

+0

@HughBothwell:是的,在Python 3中,'print'是一個函數。 – Daniel

1

如何

# find longest word 
word_length = max(len(word) for word in words) 

# create a format string 
format_str = "{{:{}s}} 1".format(word_length) 

# use the format string 
for word in words: 
    print(format_str.format(word))