Программа на Python, которая преобразует отсортированный массив строк на основе повторяющихся элементов - PullRequest
0 голосов
/ 14 июля 2020

Впервые пишу сюда, извините, если неясное объяснение. Я отсортировал массив из входных строк с именем t, который я отсортировал в алфавитном порядке, затем я хочу создать другой массив с именем new, который подсчитывает количество повторяющихся элементов, например, ['a','a','b','c','s','s','s'] должно быть ['2','1','1','3']. То, как я это сделал, не учитывается в последнем элементе (это будет ['2','1','1']. Пожалуйста, помогите

s = input("Enter words: ").split(" ")

length = len(s)
t = [None] * length
for i in range(length):
    t[i] = s[i]

    #then did some code to sort array t, guess it's not so relevant to show here

    repeatedcount = 1

    j = 0

    new = [None] * length
    for i in range(1,length):
        if (t[i] == t[i-1]): #does not count the last time it repeats
            repeatedcount+=1
        else:
            new[j] = repeatedcount
            j += 1
            repeatedcount = 1

Ответы [ 2 ]

2 голосов
/ 14 июля 2020

использовать объект Counter из "коллекций" стандартной библиотеки pythons

from collections import Counter
mylist = ['a', 'b', 'c', 'a', 'b', 'b']
print(Counter(mylist))
>> Counter({'b': 3, 'a': 2, 'c': 1})

подробные примеры

0 голосов
/ 14 июля 2020

вы также можете использовать dict.

counter = {}
for char in a:
    if char not in counter.keys():
        counter[char] = 1
    else:
        counter[char] += 1

print(counter.values())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...