문장이있는 문자열이 있습니다. 문장에는 8 개의 단어가 있습니다. 제가하려고하는 것은 세 번째, 다섯 번째, 다섯 번째 단어를 문장으로 사용하는 것입니다. 나는 같은 색인을 사용하여 시도했다 :문자열에서 단어 그룹을 어떻게 잡아낼 수 있습니까?
string[3][4][5]
그러나 이것은 IndexError
를 발생시킵니다. 내가 여기서 무엇을 놓치고 있니?
문장이있는 문자열이 있습니다. 문장에는 8 개의 단어가 있습니다. 제가하려고하는 것은 세 번째, 다섯 번째, 다섯 번째 단어를 문장으로 사용하는 것입니다. 나는 같은 색인을 사용하여 시도했다 :문자열에서 단어 그룹을 어떻게 잡아낼 수 있습니까?
string[3][4][5]
그러나 이것은 IndexError
를 발생시킵니다. 내가 여기서 무엇을 놓치고 있니?
# split the title string into words (split by spaces)
thead_list = page_soup.title.string.split()
# access elements with index 3, 4, 5
words = thead_list[3:6]
을 또는 당신은 단지 세 번째와 다섯 번째 단어를 원한다면 당신이 추출 된 결과로 말을 연결해야하는 경우, thead_list[2]
및 thead_list[4]
를 사용, 다음을 수행하십시오 :
new_title = " ".join(words) # converts ["word1", "word2"] to "word1 word2"
ab 코드의 한 줄로 다음 단계를 수행하십시오.
thead = " ".join(page_soup.title.string.split()[3:6])
코드를 사용할 때 이상한 결과가 나타납니다. 웬일인지, 그것은 모든 단어의 세 번째 단어를 부여 잡는다. 또한, 다음과 같은 내용을 보여줍니다 :'[u'MyThirdWord ']'-'[u']'를 추가하는 것은 내가 원하는 것이 아닙니다. –
@JamesDean : 모든 단어의 세 번째 단어? 또한, 'u'는 실제로 단어의 일부가 아니므로 그것에 대해 걱정하지 마십시오. – omijn
그래, 나도 알아,하지만 내 HTML 페이지에 그것을 인쇄합니다. 왜 그렇게 간단하지 않을까요?'thead = page_soup.title.string.split() [3 : 4]'? –
당신이 시도 할 수 있습니다 :
thead = page_soup.title.string
final_word1, final_word2 = thead.split()[2], thead.split()[4]
그냥 왜 :'third, fourth, fifth = page_soup.title.string.split() [3 : 6]'? –
또한 해결책이 잘못되었습니다. _ "세 번째, ** 앞의 ** 및 다섯 번째 단어 문장"_. –
@ChristianDean 채팅에서 언급 한 OP 자신이 "나는 세 번째 단어와 다섯 번째 단어를 갖고 싶다." – Ajax1234
** ** 당신이하고있는 일을 ** 색인 생성 **이라고합니다. ** (2) ** 내가 원하는 것은 ** _ 슬라이싱 _ ** :'page_soup.title.string [3 : 6]이라고합니다. –
'page_soup.title.string'은 단어 목록이라고 가정합니다. 그것은 단지 하나의 큰 문자열 일 가능성이 높습니다. 따라서이 솔루션은 세 번째, 네 번째 및 다섯 번째 문자를 가져옵니다. –
@ JohnGordon 사실,하지만 "단어"라고 말하면 "문자 그룹"을 의미한다고 가정합니다. 반드시 그런 것은 아닙니다. 그는 이미 목록 조각에 대한 용어에 대해 혼란스러워했습니다. 그는 여기서도 똑같이 할 수 있습니다. –