为循环嵌套一个班轮

2024-04-19 09:46:07 发布

您现在位置:Python中文网/ 问答频道 /正文

试图避免嵌套for循环,但我不确定如何在一个行内使用words = x.split()words[y:y+n]。你知道吗

n = 1
for x in data:
    words = x.split()
    for y in range(len(words)-n+1):
        print(words[y:y+n])

到目前为止,我的工作是:

data = ' '.join([(x, y) for x in data words = x.split() for y in range(len(words)-n+1) words[y:y+n]])

Tags: infordatalenrangesplitwordsprint
2条回答

分配临时变量的解决方法是迭代1元组:

data = ' '.join(words[y:y+n] for x in data for words in (x.split(),) for y in range(len(words)-n+1))
n = 1
for x in data:
    words = x.split()
    for y in range(len(words)-n+1):
        print(words[y:y+n])

n永远不会改变所以总是1

for x in data:
    words = x.split()
    for y in range(len(words)-1+1):
        print(words[y:y+1])

所以简化一下

for x in data:
    words = x.split()
    for y in range(len(words)):
        print(words[y])

基本上是

for x in data:
    for word in x.split():
        print(word)

这让我们

data=' '.join(word for x in data for word in x.split())

相关问题 更多 >