Я пытаюсь сгенерировать список строк, и я ищу простое выражение для этого, но не могу узнать.упростить выражение в понимании списка
Что у меня есть:
aScanListNames = ["AIN0", "AIN1", "AIN2", "AIN3"]
[[chan+"_NEGATIVE_CH", chan+"_RANGE", chan+"_RESOLUTION_INDEX", chan+"_EF_CONFIG_D", chan+"_EF_CONFIG_E"] for chan in aScanListNames]
Дает:
[['AIN0_NEGATIVE_CH', 'AIN0_RANGE', 'AIN0_RESOLUTION_INDEX', 'AIN0_EF_CONFIG_D', 'AIN0_EF_CONFIG_E'], ['AIN1_NEGATIVE_CH', 'AIN1_RANGE', 'AIN1_RESOLUTION_INDEX', 'AIN1_EF_CONFIG_D', 'AIN1_EF_CONFIG_E'], ['AIN2_NEGATIVE_CH', 'AIN2_RANGE', 'AIN2_RESOLUTION_INDEX', 'AIN2_EF_CONFIG_D', 'AIN2_EF_CONFIG_E'], ['AIN3_NEGATIVE_CH', 'AIN3_RANGE', 'AIN3_RESOLUTION_INDEX', 'AIN3_EF_CONFIG_D', 'AIN3_EF_CONFIG_E']]
, который, как и ожидалось, список списков. Я хотел бы получить простой список, как это:
['AIN0_NEGATIVE_CH','AIN0_RANGE','AIN0_RESOLUTION_INDEX','AIN0_EF_CONFIG_D','AIN0_EF_CONFIG_E','AIN1_NEGATIVE_CH','AIN1_RANGE','AIN1_RESOLUTION_INDEX','AIN1_EF_CONFIG_D','AIN1_EF_CONFIG_E','AIN2_NEGATIVE_CH','AIN2_RANGE','AIN2_RESOLUTION_INDEX','AIN2_EF_CONFIG_D','AIN2_EF_CONFIG_E','AIN3_NEGATIVE_CH','AIN3_RANGE','AIN3_RESOLUTION_INDEX','AIN3_EF_CONFIG_D','AIN3_EF_CONFIG_E']
Для моего Personnal знаний, я хотел бы знать, если есть способ получить это непосредственно, используя список понимание? Если нет, то какой будет питонический способ сделать это?
EDIT: Я знаю, что могу сгладить список, но хочу знать, есть ли решение, не связанное с созданием списка списков, чтобы сгладить его после.
Я бы сказал, что вещий путь ** не **, чтобы попытаться поставить все на одной строке кода. Это уже немного беспорядок, и вам не нужно его ухудшать, помещая его в одну строку. – skyking
https://docs.python.org/dev/library/itertools.html#itertools.chain –
aScanListNames = ["AIN0", "AIN1", "AIN2", "AIN3"] another_list = ["_NEGATIVE_CH", "_RANGE", "_RESOLUTION_INDEX", "_EF_CONFIG_D", "_EF_CONFIG_E"] required_list = [I + J для г в aScanListNames для J в another_list] Это даст вам требуется список. –