Metoda nr 1: Użycie sum() + split()
+ zrozumienie listy + enumerate()
Kombinacja powyższych funkcje mogą być użyte do wykonania tych zadań. W tym przypadku podział jest wykonywany za pomocą łącznika i przecinka, a odpowiednio zakres, liczby są wyodrębniane i kompilowane w listę.
# Kod Python3 demonstrujący, jak to działa
# Konwertuj zakresy ciągów na listę
# Używając sum ( ) + zrozumienie listy + enumerate () + split ()
# ciąg inicjujący
test_str
=
"1, 4-6, 8-10, 11"
# drukuj oryginalną linię
drukuj
(
"Oryginalny ciąg to:"
+
test_str)
# Konwertuj zakresy ciągów na listę
# Używanie sum () + list ze zrozumieniem + enumerate () + split ()
res
=
suma
(((
lista
(
zakres
(
*
[
int
(b)
+
c
for
c, b
in
enumerate
(a.split (
`-`
))]))
if
` -`
in
a
else
[
int
(a)])
for
a
in
test_str.split (
`, `
))), [ ])
# wynik wydruku
print
(
"Lista po konwersji z ciągu:"
+
str
(res))
Dane wyjściowe:
Oryginalny ciąg to: 1, 4-6, 8-10, 11 Lista po konwersji z ciągu: [1, 4, 5, 6, 8, 9, 10, 11]
Metoda nr 2: Użycie map () + rozdzielać ()
+ lambda
To zadanie można również wykonać za pomocą powyższych funkcji. Podobny do powyższej metody. Jedyna różnica polega na tym, że używamy funkcji map() i wyrażeń lambda, aby zmniejszyć złożoną czytelność. Działa tylko z Pythonem2.
Wyjście: Oryginalny ciąg to: 1, 4-6, 8-10, 11 Lista po konwersji z ciągu: [1, 4, 5, 6, 8, 9, 10, 11] Python | Konwertuj zakresy ciągów na listę exp: QuestionsPython | Konwertuj zakresy ciągów na listę Python functions: QuestionsShopLatest questions Wiki |