2016-01-20 112 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))