-3

私は以下の形式の文字列を持っています:

00:aa:bb:cc:dd:ee  

それを分割して、最初の3つのフィールド、つまり00:aa:bbのみを出力する必要があります。使ってます

s.split(':')[1:3]  

私のプログラムではその仕事をしますが、それは役に立ちません。これを行う正しい方法ですか?

4

2 に答える 2

5

ほとんど:Pythonは0インデックスです(0から数えます):

>>> s = '00:aa:bb:cc:dd:ee'
>>> s.split(":")
['00', 'aa', 'bb', 'cc', 'dd', 'ee']
>>> s.split(":")[0:3]
['00', 'aa', 'bb']
>>> s.split(":")[:3]
['00', 'aa', 'bb']

そして、あなたはそれらを再結合することができます:

>>> ':'.join(s.split(":")[:3])
'00:aa:bb'

それが問題である場合、Pythonスライシングがどのように機能するかについての簡単なレビューのためにこの質問を見ることができます。

于 2012-08-30T20:52:18.243 に答える
1

それが役に立たないというのはどういう意味ですか?結果がリストだからですか?文字列に戻すには、次のことを試してください。

':'.join(s.split(':')[0:3])

ゼロインデックスにも注意してください。

于 2012-08-30T20:53:30.350 に答える