我有一个来自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()
从整个排行榜的考验中可以看出,在我试图找到最长的行的过程中,它是极端的非Python式的和一些丑陋的代码。我需要找到一种更快的方法来拆分每5个单词。
最佳答案
每当您看到弹出相同的模式时,总会产生一个循环。您的方法很好,但是您可以例如:
res = ''
for i in range(0,len(new),5):
res += (' '.join(new[i:i+5]) + " \n ")
我不确定您是否要汇总列表中的行然后进行排序,但是您可以轻松地修改此代码来做到这一点。
在Python中有很多方法可以做到这一点,而Pyhtonic则要少得多,但是我认为这封装了解决方案的逻辑。
关于python - 每5个空格后创建换行符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47958537/