Есть ли лучший способ сделать это через понимание списка?
Вроде ..
Вместо чтения каждой строки в виде массива с помощью методов .readlines()
вы можете просто использовать .read()
:
channel_values = [x for x in open(channel_output_file).readlines().split(' ')
if x not in [' ', '\n']]
Если вам нужно сделать что-то более сложное, особенно если это включает в себя несколько списочных представлений, вам почти всегда лучше развернуть это в обычный цикл for
.
out = []
for y in open(channel_output_file).readlines():
for x in y.split(' '):
if x not in [' ', '\n']:
out.append(x)
Или используя цикл for и понимание списка:
out = []
for y in open(channel_output_file).readlines():
out.extend(
[x for x in y.split(' ')
if x != ' ' and x != '\n'])
По сути, если вы не можете сделать что-то просто с помощью понимания списка (или вам нужно их вложить), списочное понимание, вероятно, не лучшее решение.