Насколько я могу судить, это официально не возможно, но есть ли «трюк» для доступа к произвольным непересекающимся элементам списка путем нарезки?Доступ к непоследовательным элементам списка или строки в python
Например:
>>> L = range(0,101,10)
>>> L
[0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100]
Теперь я хочу, чтобы быть в состоянии сделать
a,b = L[2,5]
так что a == 20
и b == 50
Один из способов, кроме двух утверждений было бы что-то глупо, как:
a,b = L[2:6:3][:2]
Но это не распространяется на нерегулярные интервалы.
Возможно, с учетом списка, используя индексы, которые я хочу?
[L[x] for x in [2,5]]
Я хотел бы знать, что рекомендуется для этой общей проблемы.
'a, b = L [2], L [5]'? – roippi
@roippi - Это делает его простым, но я хотел применить его непосредственно к выходу функции, которая возвращает список, не вызывая функцию дважды или переписывая ее переменной, а затем захватывая. – beroe
Я склонен сказать, что ваше понимание списка - лучшее, что вы можете сделать. Или, если вам не нужен фактический список, используйте выражение генератора, как в ответе Шашанка Гупта (хотя, если вам это нужно только один раз, вы можете просто ввести ген xp inline, а не выполнять функцию, чтобы вернуть его). – Blckknght