将文件中的单词列表格式化为列

时间:2019-03-13 18:23:34

标签: python formatting

我具有以下功能,可从python文件获取唯一单词:

if high <= low and array[(low+high)//2] != value:

如果我从主函数中这样调用它:

def add_unique(s, word_list):
  for word in s.strip().split():
    word = word.lower()
    if word not in word_list:
        word_list.append(word)

这将所有唯一的单词打印在一个列中,我想知道如何在3个单独的列中打印列表中的所有单词?提前致谢。

4 个答案:

答案 0 :(得分:2)

您可以按照以下方式使用ljust中的方法str

words = ['some','example','words','for','testing']
longest = max(map(len,words))
for w in [words[i:i+3] for i in range(0,len(words),3)]:
    print(' '.join([j.ljust(longest) for j in w]))

输出为:

some    example words  
for     testing

请注意,这种方法会适应您list中最长的单词。

答案 1 :(得分:1)

您可以遍历words的列表,使用切片,将每三个元素一起打印,如下所示:

print("Unique words in my file are: ")
for i in range(len(words)-2):
    print(words[i:i+3])

您甚至可以使用以下方式进一步格式化输出:

print("Unique words in my file are: ")
for i in range(len(words)-2):
    print("{} - {} - {}".format(*words[i:i+3]))

或使用高级格式来对齐输出:

print("Unique words in my file are: ")
for i in range(len(words)-2):
    print("{:10} - {:10} - {:10}".format(*words[i:i+3]))

答案 2 :(得分:1)

您可以对字符串使用默认的重载运算符。这是一个示例("\t"表示制表符):

words = ["Xander", "Spec", "Meng", "Sparc", "Jones", "Nick", "Link", "Xander", "Spec", "Meng"]
print("Unique words in my file are: ")
word_temp=""
i=1
for word in words:
    if (i%3!=0):
        word_temp+=word+"\t"
    else:
        word_temp+=word
        print(word_temp)
        word_temp=""
    i+=1
print(word_temp)

这将导致每行words中的每三个Unique words in my file are: Xander Spec Meng Sparc Jones Nick Link Xander Spec Meng 打印,并以制表符分隔:

{{1}}

答案 3 :(得分:1)

我希望这是您要寻找的东西:

words = [1, 2, 3, 4, 5, 6]

for index, word in enumerate(words):

    # For every 3rd occurrence
    if not (index + 1) % 3:
        print(word, end='\n')
    else:
        print(word, end='\t')

输出

1 2 2 3
4/5 5 6

基于@karls输入更改了制表符的空间差异

相关问题