저는 Split을 사용하여 분할하는 Python 문자열이 있습니다. 그런 다음 길이에 액세스하고 세 번째 값을 가져 오려고합니다.문자열 분할 및 값 선택
Q = S.split('/')
E = = len(Q)
R = Q[E[2]] // ERROR
내가 분할 사용 후 3 값에 액세스 할 수있는 방법을 어떤 생각?
저는 Split을 사용하여 분할하는 Python 문자열이 있습니다. 그런 다음 길이에 액세스하고 세 번째 값을 가져 오려고합니다.문자열 분할 및 값 선택
Q = S.split('/')
E = = len(Q)
R = Q[E[2]] // ERROR
내가 분할 사용 후 3 값에 액세스 할 수있는 방법을 어떤 생각?
이 답변은 모두 정확, 난 그냥 조금 추가하고 싶었 당신은 몇 가지 방법
Q = S.split('/')
R = Q[2]
또 다른 옵션은이를 할 수 원래의 질문에 무엇이 잘못되었는지 세분화합니다. 다음 할당을 만들 때 :
E = len(Q)
E
는 정수로 설정되고있다. 때 당신이 이것을 실행하려고 :
R = Q[E[2]]
당신이 실제로 일을하려고하는 integer
E
의 두 번째 요소를 가지고있다. E
은 배열이 아니기 때문에 (기술적 인 오류는 TypeError: 'int' object is not subscriptable
입니다.) 이것은 프로그램이 깨지는 곳입니다 (실제로는 E = = len(Q)
에서 깨질 것입니다.하지만이 줄 뒤에 오류가 발생했기 때문에 질문에 오타가 있다고 가정합니다) .
그냥 수행
R = S.split('/')[2]
세 번째 값을 선택할 수 있습니다. 일반적으로 /
을 사용하여 분할하면 파일 경로와 관련이 있습니다. 이 다음 바로 가기를 가지고있는 경우라면 :
import os
R = os.path.split(path)
'/'문자로 나눌 때 세 번째 요소가 아니라 세 번째 요소를 제공합니다. –
하지만 그게 정확히 그가 원했던 것입니다. 문자열의 세 번째 값 –
원래의 대답은 문자열을 반복하는 것을 보여주었습니다. 유용하지만 어떤 질문을 수행하려고했는지는 관련이 없습니다. –
당신이해야하는 것은 잘못된 구문이있다 (E == len(Q)
)
세 번째 값에 액세스하려면 : 이제
Q = S.split('/')
R = Q[2]
당신이 할 수 있습니다를 len()
을 사용하여 목록에 적절한 수의 요소가 있는지 확인하고 len()
은 길이 인 정수를 반환합니다. 예 :
Q = S.split('/')
if len(Q) >= 3:
R = Q[2]
else:
# handle a situation where there aren't enough elements
나는 그것을 시도 할 것입니다! 덕분에 @ 가빈 – Nick
길이를 확인하는 대신'try' /'except IndexError'를 사용합니다. –
@JonClements 좋은 지적입니다. 그가 적어도 세 가지 요소가 있어야한다는 가정을하고 있다면 더 합리적인 말이 될 것입니다. 나는 질문 자체에 기초하여 len()이 어떻게 사용될 수 있는지 보여주기위한 잘못된 시도를 던진 것만 같아 보입니다. –
두 번째 줄은 전혀 필요하지 않습니다.
R = S.split('/')[2]
예 출력 :
이>>> S = "Hey/there/you/are"
>>> Q = S.split('/')
>>> R = Q[2]
>>> R
'you'
>>> R = S.split('/')[2]
>>> R
'you'
'E'가 필요 없습니다 ... 그냥'R = Q [2] ' – Jared
정수를 색인 할 수 없습니다. – squiguy
나는 당신의 방법 @ Jared를 시도했다. 그러나 그것은 나에게 오류를 준다 : IndexError :리스트 인덱스가 범위를 벗어났다. – Nick