2016-10-15 2 views
0

말해봐 string = "Nobody will give me pancakes anymore"문자열의 하위 요소 계산 중?

문자열의 각 단어를 계산하고 싶습니다. 그래서 나는 string.split()을 가지고 ['Nobody', 'will', 'give', 'me', 'pancakes', 'anymore']을 얻기 위해 목록을 얻습니다.

하지만 len(string[0])를 inputing에 의해 'Nobody'의 길이를 알고 싶을 때 0 번째 요소는 바로 'N'하지 'Nobody'이라고 생각하기 때문에 그것은 단지, 나에게 1을 제공합니다.

하나의 요소가 아닌 전체 단어의 길이를 확인하려면 어떻게해야합니까?

+3

그래서 새로운 변수에'사항 String.split()'결과를 저장 할, 그리고 * 그 *의 첫 번째 요소의 길이를 취할 수 있습니다. –

+0

@MartijnPieters 나는 그것을 시도하고있다.하지만 SyntaxError : 함수 호출에 할당 할 수 없다. – Stefan

+0

은 어딘가에 잘못 지정하는 구문을 가지고있는 것처럼 들린다. 내 대답을 보라. –

답변

4

string.split() 호출의 결과를 무시하고 string[0]의 첫 번째 문자를 사용했습니다.

분할 결과를 저장하십시오. ... 단지 'N'

명세서에 대해서는

>>> string = "Nobody will give me pancakes anymore" 
>>> words = string.split() 
>>> words[0] 
'Nobody' 
>>> len(words[0]) 
6 
+0

오, 알았어! 나는 변수를 순서대로 넣지 않았다. 많은 감사합니다! – Stefan

1

그래, string[0]은 그래서

>>> s = "Nobody will give me pancakes anymore" 
>>> lens = map(lambda x: len(x), s.split()) 
>>> print lens 
[6, 4, 4, 2, 8, 7] 

I want to count each word in the string

:

words = string.split() 
first_worth_length = len(words[0]) 

데모 : 그 개별 단어 목록입니다 , 당신은 lens[0]

0
words = s.split() 
d = {word : len(word) for word in words} 

or 

words = s.split() 
d = {} 

for word in words: 
    if word not in d: 
     d[word]=0 
    d[word]+=len(word) 

In [15]: d 
Out[15]: {'me': 2, 'anymore': 7, 'give': 4, 'pancakes': 8, 'Nobody': 6, 'will': 4} 
In [16]: d['Nobody'] 
Out[16]: 6 
+0

그래서'd = {단어 : 단어로 된 단어는 len (단어)}'입니까? 왜 디폴트 명령인가? –

+0

나는 그것을 더 읽기 쉬운 방법으로 쓰려고 노력했다. 제안에 대한 답변을 대단히 바꿨습니다. –