Как рисовать элементы из нескольких списков для создания несопровождаемого?

Учитывая несколько списков:

>>> foo = [hex, oct, abs, round, divmod, pow] >>> bar = [format, ord, chr, ascii, bin] and others 

Я заполняю его множеством вложенных условий

1.Установить переменную из системы

 >>> dir() ['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__', 'bar', 'foo'] >>> [e for e in dir() if '__' not in e] ['bar', 'foo'] >>> mul_list = [e for e in dir() if '__' not in e] >>> mul_list ['bar', 'foo'] 

2.Поддерживать каждый элемент вложенным состоянием

 >>> [ e.__name__ for single_list in mul_list for e in eval(single_list)] ['format', 'ord', 'chr', 'ascii', 'bin', 'hex', 'oct', 'abs', 'round', 'divmod', 'pow'] 

Как извлечь с помощью простого кода элегантно?

3 Solutions collect form web for “Как рисовать элементы из нескольких списков для создания несопровождаемого?”

Я не уверен в более простом способе, но вы должны рассмотреть возможность доступа к globals в качестве альтернативы использованию eval :

 [ e.__name__ for list_name in mul_list for e in globals()[list_name]] 

Вы можете просто конкатенировать списки с помощью оператора +. Так,

 multlist = [] for e in dir(): if "__" not in e: if type(eval(e)) == type(multlist) multlist += eval(e) 

frist change

 mul_list = [e for e in dir() if '__' not in e] 

к

 mul_list = [e for e in dir() if '__' not in e and isinstance(eval(e),list)] 

поэтому всегда получайте единственный список в mul_list

@coldspeed проверить это

 >>> foo = [hex, oct, abs, round, divmod, pow] >>> fred = ['one', 'two', 'three'] >>> jim = [1, 2, 3] >>> mul_list = [e for e in dir() if '__' not in e] >>> [ e.__name__ for list_name in mul_list for e in globals()[list_name]] Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'str' object has no attribute '__name__' >>> mul_list ['foo', 'fred', 'jim'] 
  • Различия между webapp и web.py
  • Проверьте, является ли число нечетным или даже в python
  • числа треугольников в python
  • Разделите строку с неизвестным количеством пробелов в качестве разделителя в Python
  • urlfetch gzip google для строки в строку
  • Функция таймаута, если требуется слишком много времени для завершения
  • Как скопировать класс python?
  • Есть ли что-то вроде python's issubclass, который вернет False, если первый arg не является классом?
  • Python - лучший язык программирования в мире.