Python 每5个空格后创建换行符

Python 每5个空格后创建换行符,python,python-3.x,tkinter,Python,Python 3.x,Tkinter,我有一个json文件中的字符串,我需要在每5个单词中插入一个\n。我试图手动拆分字符串中的每5个单词,但由于每次都是随机字符串,所以这是徒劳的。代码如下: import tkinter as tk from tkinter import * import requests root = tk.Tk() root.resizable(width=False, height=False) link = requests.get('https://talaikis.com/api/quotes/

我有一个json文件中的字符串,我需要在每5个单词中插入一个
\n
。我试图手动拆分字符串中的每5个单词,但由于每次都是随机字符串,所以这是徒劳的。代码如下:

import tkinter as tk
from tkinter import *
import requests

root = tk.Tk()

root.resizable(width=False, height=False)

link = requests.get('https://talaikis.com/api/quotes/random/')
RESPONSE = link.json()['quote']   
RESPONSE2 = link.json()['author']
new = RESPONSE.split(" ")

l = []
l.append(sum(len(s) for s in new[0:5]))
l.append(sum(len(s) for s in new[5:10]))
l.append(sum(len(s) for s in new[10:15]))
l.append(sum(len(s) for s in new[15:20]))
l.append(sum(len(s) for s in new[20:25]))
l.append(sum(len(s) for s in new[25:30]))
l.append(sum(len(s) for s in new[30:35]))
l.append(sum(len(s) for s in new[35:40]))
l.append(sum(len(s) for s in new[40:45]))
l.append(sum(len(s) for s in new[45:50]))
l.append(sum(len(s) for s in new[50:55]))
x = list(set(l))
x.sort(reverse=True)

message = Label(root, text = RESPONSE + "\n-" + RESPONSE2, height=round(len(new)/5), width = x[0])
message.pack(side = tk.BOTTOM)
root.mainloop()

从整个l列表中可以看出,在我试图找到最长的一行代码时,它是非常不符合python的,并且是一些丑陋的代码。我需要找到一种更快的方法,每5个单词拆分一次。

每当你看到相同的模式出现时,总是会出现循环。您的方法很好,但不需要手动跳转5,例如,您可以:

res = ''
for i in range(0,len(new),5):
    res += (' '.join(new[i:i+5]) + " \n ")
我不确定您是否希望将行聚合到列表中,然后进行排序,但您可以轻松地修改此代码来实现这一点


在Python中有很多方法可以做到这一点,有些方法更接近pythonic,但我认为这封装了解决方案的逻辑

所以,如果你的“回答”是:“abcdefghik”,你是想达到这个目标吗:“abcdede\nfghik”?是的,差不多。卡巴努斯的回答让我明白了。