Python | Slice String from Tuple ranges

Sometimes, while working with data, we can have a problem in which we need to perform the removal from strings depending on specified substring ranges. Let’s discuss certain ways in which this task can be performed.

Method #1 : Using loop + list slicing
This is the brute force task to perform this task. In this we remake the String by carefully omitting the slice ranges using list slicing. The iteration of tuples is done by loop.

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to demonstrate working of
# Slice String from Tuple ranges
# using loop + list slicing
  
# initialize list and string 
test_list = [(2, 4), (5, 9), (13, 17), (24, 27)]
               
test_str = "geeksforgeeks is best for geeks and programming"
  
# printing original list and string
print("The original list : " + str(test_list))
print("The original string : " + str(test_str))
  
# Slice String from Tuple ranges
# using loop + list slicing
for front, rear in reversed(test_list):
    test_str = test_str[ : front] + test_str[rear + 1:]
  
# printing result
print("The String after slicing is : " + str(test_str))

chevron_right


Output :



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

 

Method #2 : Using join() + any() + generator expression
The combination of these functionalities can also be used to perform this task. In this, we perform the task of slicing using generator expression and exclusion is handled by any(). The creation of modified string is done by join().

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 code to demonstrate working of
# Slice String from Tuple ranges
# using join() + any() + generator expression
  
# initialize list and string 
test_list = [(2, 4), (5, 9), (13, 17), (24, 27)]
               
test_str = "geeksforgeeks is best for geeks and programming"
  
# printing original list and string
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 <= idx <= rear for front, rear in test_list))
  
  
# printing result
print("The String after slicing is : " + str(res))

chevron_right


Output :

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


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.


Article Tags :

Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.