Python – Custom length tuples from String
Last Updated :
23 Apr, 2023
Given a String, extract tuple list, with each tuple being of custom length, delimited using comma.
Input : test_str = “6 6 7, 3 4, 2”
Output : [(6, 6, 7), (3, 4), (2, )]
Explanation : The customs lengths being 3, 2, 1 have been converted to tuple list.
Input : test_str = “7, 7, 4”
Output : [(7, ), (7, ), (4, )]
Explanation : All elements are of length 1.
Method #1 : Using int() + tuple() + split() + list comprehension
The combination of above functions can be used to solve this problem. In this, we perform conversion of string characters using int() and tuple() and split() is used to split on delimiter.
Python3
test_str = '4 6 7, 1 2, 3, 4 6 8 8'
print ( "The original string is : " + str (test_str))
test_str = test_str.split( ', ' )
res = [ tuple ( int (ele) for ele in sub.split()) for sub in test_str]
print ( "The constructed custom length tuples : " + str (res))
|
Output
The original string is : 4 6 7, 1 2, 3, 4 6 8 8
The constructed custom length tuples : [(4, 6, 7), (1, 2), (3, ), (4, 6, 8, 8)]
Time Complexity: O(n), where n is the elements of list
Auxiliary Space: O(n), where n is the size of list
Method #2 : Using map() + int + tuple() + list comprehension + split()
The combination of above functions provide yet another way in which this task can be performed. In this we perform task using similar method as above just difference being using map() to extend logic of integer conversion to elements.
Python3
test_str = '4 6 7, 1 2, 3, 4 6 8 8'
print ( "The original string is : " + str (test_str))
res = [ tuple ( map ( int , sub.split())) for sub in test_str.split( ", " )]
print ( "The constructed custom length tuples : " + str (res))
|
Output
The original string is : 4 6 7, 1 2, 3, 4 6 8 8
The constructed custom length tuples : [(4, 6, 7), (1, 2), (3, ), (4, 6, 8, 8)]
Time Complexity: O(n*n) where n is the number of elements in the list “test_str”.
Auxiliary Space: O(n) where n is the number of elements in the list “test_str”.
Method #3: Using a loop and split() method
step-by-step approach
- Create a string test_str that contains a sequence of integers and commas.
- Print the original string using print(“The original string is : ” + str(test_str)).
- Initialize an empty list res to store the converted tuples.
- Split test_str using the split() method with the argument “,”. This creates a list of substrings separated by commas.
- Loop over each substring using a for loop and the variable name sub.
- Within the loop, split the substring sub into a list of integers using the split() method again, but without an argument. This creates a list of integers separated by whitespace.
- Convert the list of integers into a tuple using the tuple() constructor function.
- Append the resulting tuple to the list res using the append() method.
- After the loop finishes, print the resulting list of tuples using print(“The constructed custom length tuples : ” + str(res)).
Python3
test_str = '4 6 7, 1 2, 3, 4 6 8 8'
print ( "The original string is : " + str (test_str))
res = []
for sub in test_str.split( "," ):
tup = tuple ( map ( int , sub.split()))
res.append(tup)
print ( "The constructed custom length tuples : " + str (res))
|
Output
The original string is : 4 6 7, 1 2, 3, 4 6 8 8
The constructed custom length tuples : [(4, 6, 7), (1, 2), (3,), (4, 6, 8, 8)]
Time complexity: O(nm), where n is the number of substrings and m is the maximum length of each substring
Auxiliary space: O(nm), as we are creating a new list to store the resulting tuples
Similar Reads
Python - Filter Range Length Tuples
We are given a list of tuples where each tuple contains multiple elements, and our task is to filter out tuples whose lengths do not fall within a specified range. For example, if we have a = [(1, 2), (3, 4, 5), (6,), (7, 8, 9, 10)] and the range (2, 3), we should keep only tuples with 2 or 3 elemen
3 min read
Python - Test for desired String Lengths
Given a String list, check for all string if it matches the desired string length from 2nd list of sizes. Input : test_list = ["Gfg", 'for', 'geeks'], len_list = [3, 3, 5] Output : True Explanation : All are of desired lengths. Input : test_list = ["Gfg", 'for', 'geek'], len_list = [3, 3, 5] Output
6 min read
Python | List of tuples to String
Many times we can have a problem in which we need to perform interconversion between strings and in those cases, we can have a problem in which we need to convert a tuple list to raw, comma separated string. Let's discuss certain ways in which this task can be performed. Method #1: Using str() + str
8 min read
Python - Filter String Tuples if String lengths equals K
Given List of tuples, filter tuples, whose element strings have length equal to K. Input : test_list = [("ABC", "Gfg", "CS1"), ("Gfg", "Best"), ("Gfg", "WoOW")], K = 3 Output : [('ABC', 'Gfg', 'CS1')] Explanation : All Strings have length 3 in above tuple. Input : test_list = [("ABCD", "Gfg", "CS1")
6 min read
Convert String to Tuple - Python
When we want to break down a string into its individual characters and store each character as an element in a tuple, we can use the tuple() function directly on the string. Strings in Python are iterable, which means that when we pass a string to the tuple() function, it iterates over each characte
2 min read
Python - Get Nth column elements in Tuple Strings
Yet another peculiar problem that might not be common, but can occur in python programming while playing with tuples. Since tuples are immutable, they are difficult to manipulate and hence knowledge of possible variation solutions always helps. This article solves the problem of extracting only the
8 min read
Python | Convert String to tuple list
Sometimes, while working with Python strings, we can have a problem in which we receive a tuple, list in the comma-separated string format, and have to convert to the tuple list. Let's discuss certain ways in which this task can be performed. Method #1 : Using loop + split() + replace() This is a br
5 min read
Convert tuple to string in Python
The goal is to convert the elements of a tuple into a single string, with each element joined by a specific separator, such as a space or no separator at all. For example, in the tuple ('Learn', 'Python', 'Programming'), we aim to convert it into the string "Learn Python Programming". Let's explore
3 min read
Python - Split a String by Custom Lengths
Given a String, perform split of strings on the basis of custom lengths. Input : test_str = 'geeksforgeeks', cus_lens = [4, 3, 2, 3, 1] Output : ['geek', 'sfo', 'rg', 'eek', 's'] Explanation : Strings separated by custom lengths.Input : test_str = 'geeksforgeeks', cus_lens = [10, 3] Output : ['geeks
2 min read
Python | Convert String to N chunks tuple
Sometimes, while working with Python Strings, we can have a problem in which we need to break a string to N sized chunks to a tuple. Let's discuss certain ways in which this task can be performed. Method #1 : Using list comprehension + tuple This is one approach in which this task can be performed.
2 min read