Как я могу изменить вывод этой функции w-shingling в нижний регистр? - PullRequest
0 голосов
/ 14 апреля 2019

Я пытаюсь создать в python функцию, которая возвращает w-shingling, с заданной шириной shingle, w, но хотела бы, чтобы строки в списке shingled были строчными буквами.

Я пытался поместить [c.lower () для c в inputFile] и тому подобные вещи.

import io

sample_text = io.StringIO("This is a sample text. It is a ordinary string but simulated to act as the contents of a file")


def wShingleOneFile(inputFile, w): 
    for line in inputFile:
      words = line.split() 
      [c.lower() for c in inputFile]
      return [words[i:i + w] for i in range(len(words) - w + 1)]

print(wShingleOneFile(sample_text, 3))

Это выходной сигнал при печати:


[['This', 'is', 'a'], ['is', 'a', 'sample'], ['a', 'sample', 'text.'], ['sample', 'text.', 'It'], ['text.', 'It', 'is'], ['It', 'is', 'a'], ['is', 'a', 'ordinary'], ['a', 'ordinary', 'string'], ['ordinary', 'string', 'but'], ['string', 'but', 'simulated'], ['but', 'simulated', 'to'], ['simulated', 'to', 'act'], ['to','act', 'as'], ['act', 'as', 'the'], ['as', 'the', 'contents'], ['the', 'contents', 'of'], ['contents', 'of', 'a'], ['of', 'a', 'file']]

Но я бы хотел, чтобы все эти буквы были строчными.

1 Ответ

0 голосов
/ 14 апреля 2019

Измените line.split () на line.lower (). Split ()

Также обратите внимание, что строки в python являются неизменяемыми, поэтому, например, в приведенном вами примере вам необходимо назначить понимание списка [c.lower () ... inputFile] вернуться к inputFile.В этом случае он также должен быть преобразован перед тем циклом, в котором вы в данный момент отображаете его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...