0

3 つのセットに分割した小さな文字列配列で満たされた文字列配列があります。これは次のようになります (さらに多くのものを除く):

conv = ('http-get:*:audio/xxx', ':', 'YYY.ORG_XXXXXXXXXX;YYY.ORG_FLAGS=97570000000000000000000000000'), ('http-get:*:video/xxx', ':', 'YYY.ORG_PN=XXXXXXXXXXX;YYY.ORG_FLAGS=ED100000000000000000000000')

これらの配列で実際に必要なのは、リストの 3 番目の項目だけです。3 番目の項目のみを印刷するにはどうすればよいですか? 私の問題は、これが配列内の配列であることです。

4

3 に答える 3

1

基本的にタプルをループし、convそれぞれの 2 番目のオブジェクトを保存/出力します。これは、従来の方法で行うことも、for-loopリスト内包表記を使用して行うこともできます。これを試して -

>>> [i[2] for i in conv]
['YYY.ORG;YYY.ORG_FLAGS=97570000000', 'YYY.ORG_PN=XXXXXXXXXXX;YYY.ORG_FLAGS=ED100000']
于 2013-07-15T18:05:08.797 に答える
0

他の多くのことと同様に、解決策はリスト内包表記です。

array = [[],[] etc. #your array]
print " ".join([item[2] for item in array])
>>>YYY.ORG;YYY.ORG_FLAGS=97570000000 YYY.ORG_PN=XXXXXXXXXXX;YYY.ORG_FLAGS=ED100000

基本的に、ここで重要な部分は次の行です。

[item[2] for item in array]

配列を反復処理し、見つかった各オブジェクトの 3 番目の値 (ゼロ インデックス) を返します。

同等のループの場合:

result = []
for item in array:
    result.append(item[2])
于 2013-07-15T18:02:52.477 に答える
0

拡張機能でタプルを構築することができます

>>> conv3 = tuple(x[2] for x in conv)

それらを印刷したい場合は、たとえば次のように使用できます

>>> ', '.join(x[2] for x in conv)

それはあなたが望んでいたことをしますか?

于 2013-07-15T18:02:57.770 に答える