Как сделать цикл по списку словарей внутри метки tkinter ['text]? - PullRequest
2 голосов
/ 27 апреля 2019

У меня есть несколько переменных, и один из них представляет собой список словарей, и у каждого словаря есть строка K и список V. Я пытаюсь каким-то образом зациклить мысли словарей и вернуть каждый из них и напечатать его с "\ n" внутри метка ['текст']. Например. из dict:

 results =  [{'took':['verb','past']}, {'Adam':['noun','masc']}]

Вот мой ярлык ['text'] код:

Label['text'] = ("original:"+simple_string+"parsed_results:"+[token for token in str(results)])

Когда я запускаю приведенный выше код, я получаю «typeError: должен быть str, а не список»

1 Ответ

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

Не все должно быть одним вкладышем; в этом случае вам, вероятно, следует извлечь форматирование строки из создания метки; может быть в функции?

def prepare_text_for_label(dict_of_dict):
    formatted_strings = []
    for d in dict_of_dict:
        for k, v in d.items():
            token_string = f"[{', '.join([token for token in v])}]"
            word_string = f'original: {k}, parsed_results: {token_string}'
            formatted_strings.append(word_string)
    return '\n'.join(formatted_strings)


results =  [{'took':['verb','past']}, {'Adam':['noun','masc']}]

print(prepare_text_for_label(results))   # replaced Label with print to show the formatted text.
# Label['text'] = prepare_text_for_label(results)

выход:

original: took, parsed_results: [verb, past]
original: Adam, parsed_results: [noun, masc]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...