Мой вопрос касается читабельности Python List Comprehension. Когда я встречаю код со сложными/вложенными списками, я обнаруживаю, что мне приходится перечитывать их несколько раз, чтобы понять замысел.
Существует ли интуитивно понятный способ чтения вслух списковых вычислений? Кажется, что я должен начинать "чтение" с середины, затем читать if условия (если они есть), а expression читать последним.
Вот как бы я прочитал вслух следующую строку кода, чтобы понять ее:
[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
"Для каждого элемента в списке x и каждого элемента в списке y, если эти два элемента не одинаковы, создайте список кортежей."
Два примера, с которыми я испытываю трудности: Как бы вы прочитали вслух следующие List Comprehensions?
Из другого вопроса в Stack Overflow: [x for b in a for x in b]
В документации Python есть такой пример:
[[row[i] for row in matrix] for i in range(4)]
Любые предложения или указания на способы чтения вслух списков, чтобы замысел стал более ясным, будут приняты с благодарностью.