ПИТОН: Как я могу добавить элементы с одинаковым именем вместе и добавить их в список, чтобы найти длину списка?

В моем случае window.open был запущен внутри обещания в угловом режиме, который включил блокировку всплывающих окон, мое решение было:

$scope.gotClick = function(){

  var myNewTab = browserService.openNewTab();
  someService.getUrl().then(
    function(res){
      browserService.updateLocation(res.url, myNewTab);

    }
  );
};

browserService:

this.openNewTab = function(){
  var newTabWindow = $window.open();
  return newTabWindow;
}

this.updateTabLocation = function(tabLocation, tab) {
  if(!tabLocation){
    tab.close();
  }
  tab.location.href = tabLocation;
}

, так вы можете открыть новую вкладку с помощью ответа на обещание и не вызвать блокировщик всплывающих окон.

0
задан Giorgos Myrianthous 18 March 2019 в 18:06
поделиться

2 ответа

Вы можете использовать значения объекта collections.Counter, созданного из списка:

from collections import Counter
l = ['Cats', 'Dogs', 'Cows', 'Cows', 'Cows', 'Sheep', 'Dogs', 'Sheep']
print(list(Counter(l).values()))

Это выводит:

[1, 2, 3, 2]
0
ответ дан blhsing 18 March 2019 в 18:06
поделиться

Ниже приведено описание использования пандами для создания DataFrame с вашим списком.

Затем вы можете использовать функцию pandas value_counts, которая возвращает серию, содержащую количество уникальных животных.

import pandas as pd

myAnimals = {'Animals': ['Cats', 'Dogs', 'Cows', 'Cows', 'Cows', 'Sheep', 'Dogs', 'Sheep']}
myList = pd.DataFrame(myAnimals)

pd.value_counts(myList['Animals'].values)

Я нахожу вывод этого метода более простым:

Cows     3
Sheep    2
Dogs     2
Cats     1

См. value_counts для получения дополнительной информации.

0
ответ дан drumstick2121 18 March 2019 в 18:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: