这是一个例子。
该文件具有字符串:4;4;4;8;4;4;4;9;9;4;4
。
我希望它输出:
4;4;4
8
4;4;4
9
9
4;4
在此示例中,确定何时进行拼接的限制为大于4的任何数字。我尝试在此处查看python库和其他问题。我的猜测涉及以下方面:
listA = []
listB = []
for i in line:
listA.append(i)
for item in listA:
if int(item) > 4:
listB.append(item)
else:
item = item
print(listA)
print(listB)
有没有更有效,更快捷的方法?我敢肯定有,但是我对python的了解还不多,希望能为您提供帮助!
最佳答案
from itertools import groupby
for key, group in groupby(line.split(';'), key=lambda i: int(i) > 4):
if key:
for i in group:
print(i)
else:
print(';'.join(group))
演示:
>>> for key, group in groupby(line.split(';'), key=lambda i: int(i) > 4):
... if key:
... for i in group:
... print(i)
... else:
... print(';'.join(group))
...
4;4;4
8
4;4;4
9
9
4;4
groupby
实用程序功能通过键对序列进行分组。在此,该值是否大于4;每次迭代都会给我们一个值序列,一个或另一个,如果当前组中的值确实更大,我们将它们打印在单独的行上,否则它们再次用分号连接到一个字符串中。关于python - 如何拼接列表并使用拼接部分创建新列表?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17497323/