Python - lista de índices de frequência de valores
Às vezes, ao trabalhar com tuplas Python, podemos ter um problema em que precisamos extrair a frequência de cada valor na tupla. Isso foi resolvido anteriormente. Podemos ter uma modificação na qual precisamos criar uma lista em que o índice representa a chave e o valor dela representa a frequência desse número de índice. Este tipo de problema pode ter aplicações no domínio competitivo de programação. Vamos discutir algumas maneiras pelas quais precisamos resolver esse problema.
Entrada : test_list = [('Gfg', 1), ('é', 1), ('melhor', 1), ('para', 1), ('geeks', 1)]
Saída : [0, 5, 0, 0, 0, 0]Entrada : test_list = [('Gfg', 5), ('é', 5)]
Saída : [0, 0, 0, 0, 0, 2]
Método # 1: usando loop
Esta é a abordagem de força bruta pela qual esta tarefa pode ser executada. Neste, realizamos a tarefa de atribuir frequência, iterando e atribuindo lista pré-inicializada.
test_list
=
[(
'Gfg'
,
3
), (
'is'
,
3
), (
'best'
,
1
), (
'for'
,
5
), (
'geeks'
,
1
)]
(
"The original list is : "
+
str
(test_list))
res
=
[
0
for
_
in
range
(
6
)]
for
ele
in
test_list:
res[ele[
1
]]
=
res[ele[
1
]]
+
1
(
"The Frequency list : "
+
str
(res))
A lista original é: [('Gfg', 3), ('é', 3), ('melhor', 1), ('para', 5), ('geeks', 1)] A lista de frequência: [0, 2, 0, 2, 0, 1]
Método # 2: Usando Counter()
+ compreensão de lista
A combinação das funcionalidades acima é usada para resolver este problema. Neste, realizamos a tarefa de calcular frequências usando Counter() e a renderização em lista é feita por compreensão de lista.
from
collections
import
Counter
test_list
=
[(
'Gfg'
,
3
), (
'is'
,
3
), (
'best'
,
1
), (
'for'
,
5
), (
'geeks'
,
1
)]
(
"The original list is : "
+
str
(test_list))
cntr
=
Counter(ele[
1
]
for
ele
in
test_list)
res
=
[cntr[idx]
for
idx
in
range
(
6
)]
(
"The Frequency list : "
+
str
(res))
A lista original é: [('Gfg', 3), ('é', 3), ('melhor', 1), ('para', 5), ('geeks', 1)] A lista de frequência: [0, 2, 0, 2, 0, 1]
As postagens do blog Acervo Lima te ajudaram? Nos ajude a manter o blog no ar!
Faça uma doação para manter o blog funcionando.
70% das doações são no valor de R$ 5,00...
Diógenes Lima da Silva