1

私はこのような文字列を持っています(n個の要素を持つ):

input = 'John, 16, random_word, 1, 6, ...'

どうすればこのようなリストに変換できますか?'、'を区切り文字にします。

output = [John, 16, random_word, 1, 6, ...]
4

4 に答える 4

6

使用することはできますinput.split(',')が、他の人が指摘しているように、先頭と末尾のスペースを処理する必要があります。考えられる解決策は次のとおりです。

  • 正規表現なし:

    In [1]: s = 'John, 16, random_word, 1, 6, ...'
    
    In [2]: [subs.strip() for subs in s.split(',')]
    Out[2]: ['John', '16', 'random_word', '1', '6', '...']
    

    ここで行ったことは、リスト内包表記を使用することです。リスト内包s.split(',')表記では、文字列のメソッドを呼び出して、からの文字列から要素が作成されるリストを作成しstripました。これは同等です

    strings = []
    for subs in s.split(','):
        strings.append(subs)
    print(subs)
    
  • 正規表現付き:

    In [3]: import re
    
    In [4]: re.split(r',\s*', s)
    Out[4]: ['John', '16', 'random_word', '1', '6', '...']
    

また、組み込み関数inputをシャドウイングしているため、変数名として使用しないようにしてください。

splitだけにすることもでき', 'ますが、コンマの後に常にスペースがあることを絶対に確認する必要があります(改行などについて考えてください)。

于 2012-12-13T19:55:05.063 に答える
4

あなたはどういう意味output = ['John', '16', 'random_word', '1', '6', ...]ですか?のように分割できますoutput = inpt.split(', ')。これにより、。の後の空白も削除され,ます。

于 2012-12-13T19:52:45.107 に答える
1

分割機能を使用します。

output = input.split(', ')
于 2012-12-14T10:37:02.403 に答える
0

私が正しく理解している場合は、次のようにしてください。

output = input.split(',')

split空白を気にしないので、おそらく後で結果の各文字列をトリミングする必要があります。

よろしく、マット

于 2012-12-13T19:49:16.920 に答える