0

ねえ、これは簡単な質問かもしれませんが、私はしばらく困惑していました =/

私は文字列Aを持っています:

A = ('A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5')

対応するリスト B は、文字列 A の内側の括弧内の各値の正確な位置を表示します。

B = [12 13 14 15 16 17 18 19 20 21 22 23]

リスト B の数値で定義される文字列 A の括弧内の値を出力する新しいリスト、リスト C を作成したいと思います。

助けてくれてありがとう!

編集:私の目標は、次のような内側の括弧内にあるものだけを出力するリストを作成することです:

C = ('C:0.3,D:0.4')

次に、コンマで分割し、対応する 2 つの文字列を定義済みの別の関数に入力しますが、今はリスト C だけが必要です

4

3 に答える 3

2
>>> A = ('A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5')
>>> B = [12 ,13, 14 ,15, 16, 17, 18, 19 ,20 ,21, 22, 23]
>>> C=[A[x] for x in B]
>>> C
['(', 'C', ':', '0', '.', '3', ',', 'D', ':', '0', '.', '4']

編集:

>>> A = ('A:0.1,B:0.2,(C:0.3,D:0.4)E:0.5')
>>> C=A[A.find('('):A.find(')')+1]
>>> C
'(C:0.3,D:0.4)'
于 2012-06-28T14:22:03.547 に答える
0

Bそれが本当にリストであると仮定すると、

B[0]これには本当に必要なだけのようですB[-1]

print A[B[0]:B[-1]+1]

またはリストとして:

list_of_chars=list(A[B[0]:B[-1]+1])

任意の時点でBシーケンシャルでない場合B(シーケンシャルでも機能します):

list_of_chars=[A[i] for i in B]

キャラ一覧出します…

于 2012-06-28T14:22:32.877 に答える
0

単純なリスト内包表記でこれを解決できます。

C = [A[i] for i in B]
于 2012-06-28T14:26:07.897 に答える