2011-01-21 13 views
4

Xが文字列の場合はリストを追加する簡単な方法がありますが、Xがリストの場合はそれを拡張しますか?オブジェクトが文字列かリストかどうかを簡単にテストできますが、これよりも速い方法があるかどうか疑問に思っていましたか?python適切なときにリストを拡張または追加する

+3

を使用することになる(タイプ(X)==他リスト[X]があればx)が延びていますあなたが後でこのことを強制することはありません。 – delnan

+0

この特定の状況では、私はバックエンドシステムからXを継承しており、単一のオブジェクトをリスト項目として渡しません。 – chrism

+1

"単一のオブジェクトをリストとして渡しません"と悲しいです。そして、あなたはそれを賢明な関数で包むことも、余分な方法でそれを拡張することも、それをサブクラス化して修正することもできません。 –

答えて

6

mylist.extend([X]と入力した場合(X)== strの他のx)

またはあなたも、文字列以外のものをキャッチしたい場合は、多分反対がより安全になります:

マイリストを。

+1

isinstance()を忘れてしまいました。これはおそらくtype()よりも柔軟性があります – kurosch

+0

これらのうちの2番目を使用して、かなりうまく動作します。 – chrism

0

私はそうは思わない。 extendは、任意のiterableを入力として受け取り、文字列とリストはPythonのiterableです。

0
buffer = ["str", [1, 2, 3], 4] 
myList = [] 

for x in buffer: 
    if isinstance(x, str): 
     myList.append(x) 
    elif isinstance(x, list): 
     myList.extend(x) 
    else: 
     print("{} is neither string nor list".format(x)) 

良い方法速く、最も簡単な方法は、コード番目を書くことであるtry-except代わりにisinstance()

関連する問題