Open In App

# Python – Alternate Strings Concatenation

The problem of getting the concatenation of a list is quite generic and we might someday face the issue of getting the concatenation of alternate elements and get the list of 2 elements containing the concatenation of alternate elements. Let’s discuss certain ways in which this can be performed.

Method #1: Using list comprehension + list slicing + join()

List slicing clubbed with list comprehension can be used to perform this particular task. We can have list comprehension to get run the logic and list slicing can slice out the alternate character, concat by the join() function.

## Python3

 `# Python3 code to demonstrate``# Alternate Strings Concatenation``# using list comprehension + list slicing` `# initializing list``test_list ``=` `[``"GFG"``, ``"is"``, ``"for"``, ``"Computer"``, ``"Science"``, ``"learning"``]` `# printing original list``print``(``"The original list : "` `+` `str``(test_list))` `# using list comprehension + list slicing``# Alternate Strings Concatenation``res ``=` `[``" "``.join(test_list[i : : ``2``]) ``for` `i ``in` `range``(``len``(test_list) ``/``/``            ``(``len``(test_list)``/``/``2``))]` `# print result``print``(``"The alternate elements concatenation list : "` `+` `str``(res))`

Output :

```The original list : ['GFG', 'is', 'for', 'Computer', 'Science', 'learning']
The alternate elements concatenation list : ['GFG for Science', 'is Computer learning']```

Time Complexity: O(n*n), where n is the number of elements in the list “test_list”.
Auxiliary Space: O(n), where n is the number of elements in the list “test_list”.

Method #2: Using loop

This is the brute method to perform this particular task in which we have the concatenation of alternate elements in different element indices and then return the output list.

## Python3

 `# Python3 code to demonstrate``# Alternate Strings Concatenation``# using loop` `# initializing list``test_list ``=` `[``"GFG"``, ``"is"``, ``" for"``, ``" Computer"``, ``" Science"``, ``" learning"``]` `# printing original list``print``(``"The original list : "` `+` `str``(test_list))` `# using loop``# Alternate Strings Concatenation``res ``=` `["``", "``"]``for` `i ``in` `range``(``0``, ``len``(test_list)):`` ``if``(i ``%` `2``):``  ``res[``1``] ``+``=` `test_list[i]`` ``else` `:``  ``res[``0``] ``+``=` `test_list[i]` `# print result``print``(``"The alternate elements concatenation list : "` `+` `str``(res))`

Output :

```The original list : ['GFG', 'is', 'for', 'Computer', 'Science', 'learning']
The alternate elements concatenation list : ['GFG for Science', 'is Computer learning']```

Time Complexity: O(n)
Auxiliary Space: O(n)

Method 3: use the zip() function with tuple unpacking and string concatenation.

Steps:

1. Initialize the original list.
2. Use the zip() function with tuple unpacking to create two new lists containing the even-indexed and odd-indexed elements of the original list.
3. Join the elements in each list into two strings using string concatenation.
4. Append the two strings into a result list.
5. Print the result list.

## Python3

 `# Python3 code to demonstrate``# Alternate Strings Concatenation``# using zip()` `# initializing list``test_list ``=` `[``"GFG"``, ``"is"``, ``" for"``, ``" Computer"``, ``" Science"``, ``" learning"``]` `# printing original list``print``(``"The original list : "` `+` `str``(test_list))` `# Alternate Strings Concatenation``# using zip() function``even_list, odd_list ``=` `zip``(``*``[(test_list[i], test_list[i``+``1``])``                            ``for` `i ``in` `range``(``0``, ``len``(test_list)``-``1``, ``2``)])``res ``=` `['``'.join(even_list), '``'.join(odd_list)]` `# Printing the result``print``(``"The alternate elements concatenation list : "` `+` `str``(res))`

Output

```The original list : ['GFG', 'is', ' for', ' Computer', ' Science', ' learning']
The alternate elements concatenation list : ['GFG for Science', 'is Computer learning']```

Time complexity: O(n), where n is the length of the original list.
Auxiliary space: O(n), as we create two new lists containing the even-indexed and odd-indexed elements of the original list.