Python | Slice String from Tuple Ranges



Method # 1: Using Loop + Slicing List
It`s a brute force task to accomplish this task. In this we rewrite the string by neatly omitting the chunk ranges using list slicing. The tuples are iterated over in a loop.

# Python3 code to demonstrate how it works
# Slice String from ranges Tuple
# using a loop + slicing list

 
# initialize list and string

test_list = [( 2 , 4 ), ( 5 , 9 ), ( 13 , 17 ), ( 24 , 27 )]

  

test_str = "pythonengineering is best for geeks and programming"

 
# print original list and line

print ( " The original list: " + str (test_list))

print ( "The original string:" + str (test_str))

  
# Slice String from Tuple ranges
# using a loop + slice list

for front, rear in reversed (test_list):

test_str = test_str [: front] + test_str [rear + 1 :]

 
# print result

print ( "The String after slicing is:" + str (test_str))

Output:

 The original list: [(2, 4), (5 , 9), (13, 17), (24, 27)] The original string: geek sforgeeks is best for geeks and programming The String after slicing is: geeksest foeks and programming 

Method # 2: Using join () + any () + generator expression
A combination of these functions can also be used to accomplish this task. In this, we perform the slicing task using a generator expression and the exception is handled by any (). The creation of the modified row is done with join ().

# Python3 code to demonstrate how it works
# Slice String from Tuple ranges
# using join () + any () + generator expression

  
# initialize list and string

test_list = [( 2 , 4 ), ( 5 , 9 ), ( 13 , 17 ), ( 24 < code class = "plain">, 27 )]

 

test_str = "pythonengineering is best for geeks and programming"

 
# prints the original list and strings

print ( "The original list : " + str (test_list))

print ( "The original string:" + str (test_str))

 
# Slice String from Tuple ranges
# using join () + any () + generator expression

res = "". join (test_str [idx] for idx in range ( len (test_str))

if not any (front & lt; = idx & lt; = rear for front, rear in test_list))

 

 
# cut print option

print ( "The String after slicing is: " + str (res))

Output:

 The original list: [( 2, 4), (5, 9), (13, 17), (24, 27)] The original string: pythonengineering is best for geeks and programming The String after slicing is: geeksest foeks and programming