2017-03-27 11 views
1

私が解析しようとして行を分割しています:Python - split()コマンドでインデックスを作成できますか?

redfish - 12,000 lbs - trade for SNE stocks 

を私がしようとしているコードは次のとおりです。

elif ('-' in line) and ('lbs' in line): 
    fish, remainder = line.split('-')    #splits line into two halves at the - (fish to one side) 
    #print("line.split is:", line.split(':')) 
    if '@' in remainder: 
     weight, price = remainder.split('@')  #splits already split piece (remainder) into two halves at @ 
     if '-->' in price: 
      price, junk = price.split('-->') 
    if 'trade' in remainder: 
     if 'to ' in remainder: 
      weight, price = remainder.split('to ') 
     elif ' or ' in remainder: 
      weight, price = remainder.split(' or ') #add spaces around ' or ' so we don't match 'for' 
    if 'swap' in remainder: 
     weight, price = remainder.split('to ') 

それはライン上で失敗します。

fish, remainder = line.split('-')

エラー:

ValueError: too many values to unpack (expected 2)

今、私はこれがその行で2 '-'があり、Pythonが上に分割するかを知らないので、私が最初に'-'に分割するように指示しようとしたことに起因している知っている:fish, remainder = line.split('-'[0])が、それが失敗しました。

私の質問です。これには方法がありますか? split()コマンドに別の方法でインデックスを付けることができます。その結果、私は望みどおりにその行を正常に分割できますか?

ご協力いただきありがとうございます。あなたが接近していた

答えて

2

、使用してみてください:

line.split('-', 1)

それは最初に文字列を分割するためにそれを伝える「 - 」それが遭遇します。

しかし、2番目のものだけを分割したい場合は、分割コマンドを直接「索引付け」する可能性はありません。

その場合、文字列全体を分割して、必要な部分を結合することをおすすめします。

+1

Ohh gotcha。私はそれが簡単な答えになることを知っていた。ええ、私は残りの部分に入ってから2番目のものに分割しなければならないと思っています。答えをありがとう:)私は数分でそれを受け入れるためにチェックマークをクリックします – theprowler

関連する問題