Один вкладыш - вложенный для петли - PullRequest
0 голосов
/ 03 апреля 2019

Стараюсь избегать вложенных циклов, но я не уверен, как использовать 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]])

Ответы [ 2 ]

1 голос
/ 03 апреля 2019

Обходной путь для назначения временной переменной состоит в том, чтобы вместо этого перебрать 1-кортеж:

data = ' '.join(words[y:y+n] for x in data for words in (x.split(),) for y in range(len(words)-n+1))
0 голосов
/ 03 апреля 2019
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())
...