2017-08-14 4 views
0

考えると、複数のリスト:複数のリストから要素を結合しますか?

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

を私は、ネストされた状態でシステム

>>> 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.obtainから変数1.retrieve、いくつかのネストされた条件

で各要素を、それを完成さ

>>> [ 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'] 

簡単なコードeで抽出する方法正気か?

答えて

1

私は簡単な方法についてはよく分からないが、あなたはevalを使用する代わりにglobalsにアクセス考慮する必要があります。

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

は、あなたがこのコードを実行しようとしています。 – Kallz

+0

を実行している間、私はエラーを取得していますので、10 –

+0

エラーを返す私の答えを確認してください – Kallz

0

あなただけの+演算子を使用してリストを連結することができます。 ので、

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

延期変更

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)] 

ので、常にそれ

をチェック@coldspeed mul_list

で唯一のリストを取得しますあなたが最初の `[「__」はEであればディレクトリ内の電子の電子()]` mul_listは=を行う必要があり@Kallzこの

+0

'[hex、oct、abs、round、divmod、pow]'はモジュールのリストです。だから 'e .__ name__'が動作します。 –

+0

@cᴏʟᴅsᴘᴇᴇᴅthenこれを解決する方法 – Kallz

+0

この問題を解決するには、この問題を解決するには、明らかに '['one'、 'two'、 'three']'と '[1,2,3]'モジュールのリストではないため、使用しないでください。 –

関連する問題