Python | Преобразование диапазонов строк в список

| | | | | | |

Способ № 1: использование sum() + split() + понимание списка + enumerate()
Комбинация вышеперечисленного функции могут быть использованы для выполнения этих задач. При этом разбиение выполняется по дефису и запятой и, соответственно, диапазону, числа извлекаются и составляются в список.


# Код Python3 для демонстрации работы
# Преобразование диапазонов строк в список
# Использование суммы ( ) + понимание списка + перечисление () + разделение ()


# строка инициализации

test_str = "1, 4-6, 8-10, 11"


# напечатать исходную строку

напечатать ( "Исходная строка:" + test_str)


# Преобразование диапазонов строк в список
# Использование суммы () + понимания списка + перечисления () + разделения ()

res = sum ((( list ( диапазон ( * [ int (b) + c

for c, b in enumerate (a.split ( `-` )))]))

if ` -` in a else [ int (a)]) for a in test_str.split ( `, ` )), [ ])


# результат печати

print ( "Список после преобразования из строки:" + str (res))

Вывод:

Исходная строка: 1, 4-6, 8-10, 11 Список после преобразования из строки: [1, 4, 5, 6, 8, 9, 10, 11] 

Способ №2: Использование map() + расколоть () + lambda
Эта задача также может быть выполнена с помощью вышеуказанных функций. Аналогично методу выше. Единственное отличие состоит в том, что мы используем функции map() и лямбда-выражения для уменьшения сложной читабельности. Работает только с Python2.


# Код Python2 для демонстрации работы
# Преобразование диапазонов строк в список
# Использование map() + lambda + split()


# Строка инициализации

test_str = "1, 4-6, 8-10, 11"


# печать исходной строки

print ( "Исходная строка:" + test_str)


# Преобразование диапазонов строк в список
# Использование карты ( ) + лямбда + разделение ()

temp = [( lambda sub: диапазон (sub[ 0 ], sub [ - 1 ] + 1 )) ( map ( int , ele.split ( `-` )))

for ele in test_str. split ( `,` )]


res = [b for a in temp for b in a]


# результат печати

print ( "Список после преобразования из строки:" + str (res))

Выход:

Исходная строка: 1, 4-6, 8-10, 11 Список после преобразования из строки: [1, 4, 5, 6, 8, 9, 10, 11] 

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method