繁体   English   中英

一个衬里-嵌套循环

[英]One liner - Nested for loop

试图避免嵌套的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]])

分配临时变量的一种解决方法是改为遍历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())

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM