Форум сайта python.su
Нужно сделать лист H с числами, так чтобы H выдавало колличество слов с длинной i из строки.
L=["Привет","как","дела","хорошо"]
H[6]=2
Отредактировано ProPall (Ноя. 8, 2016 22:19:07)
Офлайн
# хотелось бы отметить, что в данном примере H[5] = 0 from collections import defaultdict def count_words_length(s): result = defaultdict(int) for word in s: result[len(word)] += 1 return result H = count_words_length(["Привет","как","дела","хорошо"]) for i in range(7): print('H[%s] =' % i, H[i])
H[0] = 0 H[1] = 0 H[2] = 0 H[3] = 1 H[4] = 1 H[5] = 0 H[6] = 2
Отредактировано izekia (Ноя. 8, 2016 22:08:00)
Офлайн
izekiaCпасибо, а можно ли как-то это сделать через индексирование? Я пытался, но все равно не работает.
H=[ ]
d=0
for i in H:
if len(L[i]) == i:
H[i]= d+1
print (H)
Офлайн
def count_words_length(words_list): max_length = 0 words_length = [] for word in words_list: word_length = len(word) words_length.append(word_length) max_length = max(max_length, word_length) if max_length > 0: result = [0] * (max_length + 1) for word_length in words_length: result[word_length] += 1 return result else: return []
Отредактировано izekia (Ноя. 8, 2016 22:39:59)
Офлайн