首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python split()函数说明

Python split()函数说明
EN

Stack Overflow用户
提问于 2021-05-25 12:50:00
回答 3查看 57关注 0票数 1

我是Python的新手,我只是想弄明白一些事情。

我有一堆txt文件要打开,其中包含数千个单词,全部由空格分隔,我相信我已经在下面的代码中介绍了这些空格。但我只是想知道如何将这些行分解成用户输入的3或一些int块?

来自['perfect', 'dealing', 'crave', 'stirring', 'expedition', 'alexandria', 'vanish', 'dealing', 'crave']

转到[['perfect', 'dealing', 'crave'], ['stirring', 'expedition', 'alexandria'],['vanish', 'dealing', 'crave']]

或者甚至返回到列表形成

代码语言:javascript
复制
a
b
c

提亚

代码语言:javascript
复制
word_list=[]
filename = "filename.txt"
with open(filename,"r") as file_object:
    for line in file_object:
        word_list=line.split()
        print(word_list)
    return(word_list)
EN

回答 3

Stack Overflow用户

发布于 2021-05-25 13:16:10

您可以使用for i in range(0, len(word_list), 3)遍历间隔为3的列表,并使用索引对原始列表进行切片

代码语言:javascript
复制
new_list = [word_list[i:i+3] for i in range(0, len(word_list), 3)]
# [['perfect', 'dealing', 'crave'], ['stirring', 'expedition', 'alexandria'], ['vanish', 'dealing', 'crave']]
票数 0
EN

Stack Overflow用户

发布于 2021-05-25 13:28:23

你没有更新word_list,而是重写了它的值,它应该是这样的。

代码语言:javascript
复制
word_list=[]
filename = "filename.txt"
with open(filename,"r") as file_object:
    for line in file_object:
        word_list.append(line.split()) # notice this
        print(word_list)
    return(word_list)

sub_list_size = 3; # take from user input or as needed
output = [word_list[i: i+sub_list_size] for i in range(0, len(word_list), sub_list_size)]
print(output)
票数 0
EN

Stack Overflow用户

发布于 2021-05-25 13:37:03

使用itertools配方中的grouper结构:

代码语言:javascript
复制
def grouper(iterable, n, fillvalue=None):
    "Collect data into fixed-length chunks or blocks"
    # grouper('ABCDEFG', 3, 'x') --> ABC DEF Gxx"
    args = [iter(iterable)] * n
    return zip_longest(*args, fillvalue=fillvalue)

然后你的代码是:

代码语言:javascript
复制
word_list = []
n = 3
filename = "filename.txt"
with open(filename, "r") as file_object:
    for line in file_object:
        word_list.append(grouper(line.split(), n))
return word_list
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67681945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档