2012-06-28 2 views
0

안녕하세요이 간단한 질문이 될 수도 있지만, 나는 잠시 =/은 목록에서 특정 값을 출력하는 방법

내가 문자열 A를 가지고

위해 난처한 상황에 빠진되었습니다

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] 

제가 새로운 목록을 작성하고자하는 문자열 (A)의 괄호 안의 값을 출력리스트 C, WH : 캐릭터 (A)의 내측 괄호 안에 각 값의 정확한 위치를 표시리스트 B를 대응 ich는 목록 B의 숫자로 정의됩니다.

도움을 주셔서 감사합니다!

편집 : 내 목표는이 같은 단지 내부 괄호 안에 무엇을 인쇄 목록을 작성하는 것입니다 :

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

그때 쉼표로 분리됩니다, 입력은에이 문자열을 해당 또 다른 기능은 내가 정의,하지만 지금, 난 그냥 목록 C가 필요

+0

파이썬 버전은리스트 'B = [12 13 14 15 16 17지지하는 18 19 20 21 22 23] '?? –

+0

예상되는 결과를 나타내십시오. 명시된대로 문제가 전혀 이해가되지 않습니다. –

+0

문자열 A가'()'안에있는 이유를 @Sean? –

답변

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)' 
+0

구문 문제에 유의하십시오. A의 정의에는 불필요한 괄호가있어 하나의 요소로 된 터플로 보이지만 B 목록에는 쉼표가 없어 구문 오류가 발생했습니다. –

+0

@SimonHibbs 내 솔루션에 구문 오류가 없습니다. –

+0

Ahh, 고맙습니다. 내가 찾고 있던 것이 었습니다. 실제 목록 A와 B는 내 코드에서 A = '', B = ''처럼 쉽게 정의되지 않았기 때문에 쉽게 문제를 단순화했습니다. – Sean

0

B 정말 목록이라고 가정은

당신이 정말에만이에 대한 B[0]B[-1]이 필요하다는 것 :

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

의 경우 :

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

또는 목록으로

어떤 점이라도 B는 순차적이지 않다 ( B도 순차적 일 때 작동한다) :

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

에게 문자 목록을 제공한다 ..

0

간단한리스트 통합 이것을 해결할 수

C = [A[i] for i in B] 
관련 문제