У меня есть текстовый файл с именем words.txt пар слов и описания, разделенных двоеточием, например:
word1:description 1 bla bla bla
word2:description 2 blah blah
...
Мне нужна структура, подобная этой:
[('word1', 'description 1 bla'), ('word2', 'description 2 blah')]
если вы считаете, что другая структура, отличная от списка кортежей, лучше всего мне скажу... Мне было бы очень приятно, используя список compushesion, но я застрял.
Как насчет просто:
[line.split(':', 1) for line in open('words.txt')]
или
dict(line.split(':', 1) for line in open('words.txt'))
line.spit(':')
в вызов tuple()
.
[tuple(line.partition(':')[0:3:2]) for line in open('file.txt')]
Или вы можете сделать следующее
text = """
word1:description 1 bla bla bla
word2:description 2 blah blah
"""
[tuple(x.strip().split(':', 1)) for x in text.split('\n') if ':' in x]
data = []
for line in open('file.txt'):
data.append(tuple(line.strip().split(':')))
"tuple" используется только для изменения списка, возвращаемого split, в кортеж.
Дополнительно:
data = dict(data)
потом, чтобы изменить его на слово: словарь описания, который может быть лучшим представлением того, что вы хотите.