python函数以n行分隔消息

python函数以n行分隔消息,python,Python,为什么每个人,我想做这样的事情,但我的逻辑不是那么愚蠢。我有一条信息,每行必须包含80个字符:我可以这样做: msg = '' msg_list = [] for i in dict['msg']: if len(msg) >= 80 and i.isspace(): msg_list.append(msg) msg = "" msg += i 这里的问题是,当我的msg没有80个字符时,有没有办法让这个块工作得更好?检查第80个字符。如果这是一个空

为什么每个人,我想做这样的事情,但我的逻辑不是那么愚蠢。我有一条信息,每行必须包含80个字符:我可以这样做:

msg = ''
msg_list = []

for i in dict['msg']:
    if len(msg) >= 80 and i.isspace():
    msg_list.append(msg)
    msg = "" 

    msg += i

这里的问题是,当我的msg没有80个字符时,有没有办法让这个块工作得更好?

检查第80个字符。如果这是一个空间,你可以打破界限。如果没有,请检查第79页。冲洗重复

import textwrap
msg_list = textwrap.wrap(dict['msg'], 80)
假设你76岁就破产了。现在检查第(76+80)个字符是否为空格。等等等等

如果您无法将其转换为代码,请发布您的最佳尝试,我们可以从中提供建议


另外,dict['msg']中i的
也没有意义。您是否重新定义了内置的
dict
类型

检查第80个字符。如果这是一个空间,你可以打破界限。如果没有,请检查第79页。冲洗重复

import re

input = "put your text in here"
tokens = re.split('\s', input)

w = []
s = ""
for token in tokens:
    if len(s) + len(token) < 80:
        s = " ".join([s,token])
    else:
        w.append(s)
        s = ""
print w
假设你76岁就破产了。现在检查第(76+80)个字符是否为空格。等等等等

如果您无法将其转换为代码,请发布您的最佳尝试,我们可以从中提供建议

另外,dict['msg']中i的
也没有意义。您是否重新定义了内置的
dict
类型

重新导入
import re

input = "put your text in here"
tokens = re.split('\s', input)

w = []
s = ""
for token in tokens:
    if len(s) + len(token) < 80:
        s = " ".join([s,token])
    else:
        w.append(s)
        s = ""
print w
input=“将文本放在此处” 令牌=重新拆分('\s',输入) w=[] s=“” 对于令牌中的令牌: 如果len(s)+len(token)<80: s=”“.加入([s,令牌]) 其他: w、 附加 s=“” 打印w
重新导入
input=“将文本放在此处”
令牌=重新拆分('\s',输入)
w=[]
s=“”
对于令牌中的令牌:
如果len(s)+len(token)<80:
s=”“.加入([s,令牌])
其他:
w、 附加
s=“”
打印w

我会投-1票,除非我得到了一个相互竞争的答案,这是有偏见的。我认为这是错误的做法。虽然很高兴知道Python的标准库可以做到这一点,但作业的重点可能是设计一种算法并用Python编写代码。嗯,原始海报上没有说这是作业,标签是由agf…@jpa添加的。我错过了。爱尔兰狼的其他问题看起来也不像家庭作业,所以+1。我还删除了家庭作业标签。我会投-1票,除非我有一个竞争性的答案,这将是有偏见的。我认为这是错误的做法。虽然很高兴知道Python的标准库可以做到这一点,但作业的重点可能是设计一种算法并用Python编写代码。嗯,原始海报上没有说这是作业,标签是由agf…@jpa添加的。我错过了。爱尔兰狼的其他问题看起来也不像家庭作业,所以+1。我还删除了家庭作业标签。