Método nº 1: usando sum () + split ()
+ compreensão de lista + enumerate()
Combinação do acima funções podem ser usadas para realizar essas tarefas. Neste caso, a divisão é realizada por hífen e vírgula e, consequentemente, o intervalo, os números são extraídos e compilados em uma lista.
# Código Python3 para demonstrar como funciona
# Converte intervalos de strings em uma lista
# Usando sum ( ) + compreensão de lista + enumerar () + dividir ()
# string de inicialização
test_str
=
"1, 4-6, 8-10, 11"
# imprime a linha original
print
(
"A string original é:"
+
test_str)
# Converte intervalos de strings em uma lista
# Usando sum () + compreensão de lista + enumerate () + split ()
res
=
sum
(((
list
(
intervalo
(
*
[
int
(b)
+
c
para
c, b
em
enumerate
(a.split (
`-`
))]))
if
` -`
em
a
else
[
int
(a)])
for
a
em
test_str.split (
`, `
)), [ ])
# imprime resultado
print
(
"Lista após conversão de string:"
+
str
(res))
Saída:
A string original é: 1, 4-6, 8-10, 11 Lista após a conversão da string: [1, 4, 5, 6, 8, 9, 10, 11]
Método nº 2: usando map() + dividir ()
+ lambda
Esta tarefa também pode ser feita usando as funções acima. Semelhante ao método acima. A única diferença é que usamos funções map() e expressões lambda para reduzir a legibilidade complexa. Funciona apenas com Python2.
Sair: A string original é: 1, 4-6, 8-10, 11 Lista após conversão da string: [1, 4, 5, 6, 8, 9, 10, 11] ShopLatest questions Wiki |