2017-04-04 3 views
0

2つのパラメータを使用して文字列を分割する.split()関数を使用する方法があるのだろうかと思いました。2つのパラメータを使用して文字列を分割する方法 - python 3.5

数学の方程式例えば:

のx^2 + 6X-9

それは+を使用して、それを分割することが可能ですか - ? それがリストとして終わるように: [x^2、6x、9]

+0

'split()。split()'? – Tobias

+0

残念ながら、それは応答します - AttributeError: 'list'オブジェクトには属性 'split'はありませんが、提案に感謝 – skeeto

+0

Aha、あなたはもちろんです。なぜあなたは 'split()'の使用を主張していますか? – Tobias

答えて

0

あなたの問題を解決するにはregxを使う必要があると思います。

+0

手元にあるサンプルを解答すると、私はアップヴォートします。 – Tobias

+0

@Tobias私はあまりPythonについて知らない。 Javaでは、この問題は正規表現によって簡単に解決されます。 http://www.w3resource.com/python-exercises/re/python-re-exercise-47.php –

0

.split()がリストを返すので、返されたリストをもう一度反復処理する必要があります。この関数(下記)は、splitを任意の回数実行できますが、別の答えで述べたように、re(正規表現)モジュールの使用を検討する必要があります。

from itertools import chain 


def split_n_times(s, chars): 
    if not chars: 
     # Return a single-item list if chars is empty 
     return [s] 

    lst = s.split(chars[0]) 
    for char in chars: 
     # `chain` concatenates iterables 
     lst = chain(*(item.split(char) for item in lst)) 

    return lst 

正規表現のバージョンはかなり短くなります。これがどうなる

1

あなたはおそらくあなたがあなたがしようとしている何に役立つ正規表現を学ぶ質問

def multisplit(text, targets): 
    input = [] 
    output = [text] 
    for target in targets: 
     input = output 
     output = [] 
     for text in input: 
      output += text.split(target) 
    return output 

に要求しているしたいです。彼らがどのように働くかをより良く感じるために、https://regex101.com/[+-][^+-]*のようなもので遊んでください。

+0

ありがとう、私は正規表現を前に与える – skeeto

関連する問題