Skip to content
    geeksforgeeks
    • Interview Prep
      • DSA
      • Interview Corner
      • Aptitude & Reasoning
      • Practice Coding Problems
      • All Courses
    • Tutorials
      • Python
      • Java
      • ML & Data Science
      • Programming Languages
      • Web Development
      • CS Subjects
      • DevOps
      • Software and Tools
      • School Learning
    • Tracks
      • Languages
        • Python
        • C
        • C++
        • Java
        • Advanced Java
        • SQL
        • JavaScript
        • C#
      • Interview Preparation
        • GfG 160
        • GfG 360
        • System Design
        • Core Subjects
        • Interview Questions
        • Interview Puzzles
        • Aptitude and Reasoning
        • Product Management
        • Computer Organisation and Architecture
      • Data Science
        • Python
        • Data Analytics
        • Complete Data Science
        • Gen AI
        • Agentic AI
      • Dev Skills
        • Full-Stack Web Dev
        • DevOps
        • Software Testing
        • CyberSecurity
        • NextJS
        • Git
      • Tools
        • Computer Fundamentals
        • AI Tools
        • MS Excel & Google Sheets
        • MS Word & Google Docs
      • Maths
        • Maths For Computer Science
        • Engineering Mathematics
        • School Maths
    • Python Tutorial
    • Data Types
    • Interview Questions
    • Examples
    • Quizzes
    • DSA Python
    • Data Science
    • NumPy
    • Pandas
    • Practice
    • Django
    • Flask
    • Projects
    Open In App

    Python - Concatenate Random characters in String List

    Last Updated : 17 May, 2023
    Comments
    Improve
    Suggest changes
    Like Article
    Like
    Report
    See More

    Given a String list, perform concatenation of random characters.

    Input : test_list = ["Gfg", "is", "Best", "for", "Geeks"] 
    Output : "GiBfe" 
    Explanation : Random elements selected, e.g G from Gfg, etc.
    Input : test_list = ["Gfg", "is", "Best"] 
    Output : "fst" 
    Explanation : Random elements selected, e.g t from Best, etc. 
     

    Method #1 : Using loop + random.choice()

    In this, we extract random character using choice() and perform task of iteration using loop. The character concatenation is done using + operator.

    Python3
    # Python3 code to demonstrate working of 
    # Concatenate Random characters in String List
    # Using loop + choice()
    import random
    
    # initializing list
    test_list = ["Gfg", "is", "Best", "for", "Geeks"]
    
    # printing original list
    print("The original list is : " + str(test_list))
    
    res = ''
    for ele in test_list:
        
        # Concatenating random elements
        res += random.choice(ele)
            
    # printing results
    print("Concatenated String : " + str(res))
    

    Output
    The original list is : ['Gfg', 'is', 'Best', 'for', 'Geeks']
    Concatenated String : Gsere

    Time complexity: O(n), where n is the length of the test_list. The loop + random.choice() takes O(n) time
    Auxiliary Space: O(n), extra space of size n is required

    Method #2 : Using list comprehension + choice() + join()

    In this, we perform task of getting random using choice() and concatenation is done using join().

    Python3
    # Python3 code to demonstrate working of 
    # Concatenate Random characters in String List
    # Using list comprehension + choice() + join()
    import random
    
    # initializing list
    test_list = ["Gfg", "is", "Best", "for", "Geeks"]
    
    # printing original list
    print("The original list is : " + str(test_list))
    
    # characters joining using join()
    res = ''.join([random.choice(ele) for ele in test_list])
            
    # printing results
    print("Concatenated String : " + str(res))
    

    Output
    The original list is : ['Gfg', 'is', 'Best', 'for', 'Geeks']
    Concatenated String : Gitrk

    Method #3 : Using recursion+random.randint()

    It takes a list of strings str_list as input. It initializes an empty string result. It loops through each string s in the input list. It selects a random character from s using the random.randint() function. It concatenates the selected character to the result string. After looping through all the strings in the input list, it returns the concatenated result string.

    Python3
    import random
    
    def concatenate_random_chars(str_list):
        result = ''
        for s in str_list:
            result += s[random.randint(0, len(s)-1)]
        return result
    str_list = ['Gfg', 'is', 'Best', 'for', 'Geeks']
    result = concatenate_random_chars(str_list)
    print("Concatenated String :", result)
    

    Output
    Concatenated String : gitoe

    Time complexity: O(n)

    Auxiliary Space: O(1)

    #method -4:

    Approach:

    n this program, we first define a sample input list of strings input_list as ['foo', 'bar', 'baz'].

    We then loop over each string in the list using the range() function and len() function. For each string, we generate a random string of lowercase letters using the random.choices() function from the random module and the string.ascii_lowercase constant. The k=5 argument specifies that we want to generate a random string of length 5.

    We then concatenate the random string to the current string in the list using the += operator.

    Python3
    import random
    import string
    
    # Sample input list of strings
    input_list = ['foo', 'bar', 'baz']
    
    # Concatenate random characters to each string in the list
    for i in range(len(input_list)):
        # Generate a random string of lowercase letters of length 5
        rand_str = ''.join(random.choices(string.ascii_lowercase, k=5))
        # Concatenate the random string to the current string in the list
        input_list[i] += rand_str
    
    # Print the updated list of strings
    print(input_list)
    

    Output
    ['foofgcis', 'barluism', 'bazoyurp']

     time complexity : The time complexity of the given code is O(N * K), where N is the length of the input list and K is the length of the generated random string. This is because for each element in the input list, a random string of length K is generated and then concatenated to the string, which takes O(K) time. Since this operation is performed N times, the overall time complexity is O(N * K).

    space complexity: The space complexity of the code is O(N * K), as we are creating a new string of length K for each element in the input list and then concatenating it to the original string. This means that the total space required to store the updated list of strings is proportional to the product of the length of each string and the length of the randomly generated string.

    Method #4: Using map() and join()

    In this method, we can use the map() function to apply random.choice() on each element of the list and then use join() function to concatenate the random characters.

    Steps:

    • Define a lambda function that takes an element from the list and returns a random character using random.choice().
    • Apply the map() function on the list using the lambda function.
    • Use join() function to concatenate the random characters returned by map() function.
    Python3
    import random
    
    # initializing list
    test_list = ["Gfg", "is", "Best", "for", "Geeks"]
    
    # printing original list
    print("The original list is : " + str(test_list))
    
    # using map() and join()
    res = ''.join(map(lambda ele: random.choice(ele), test_list))
    
    # printing results
    print("Concatenated String : " + str(res))
    

    Output
    The original list is : ['Gfg', 'is', 'Best', 'for', 'Geeks']
    Concatenated String : gisok

    Time complexity: O(n * k), where n is the length of the list and k is the maximum length of an element in the list.
    Auxiliary space: O(k), where k is the maximum length of an element in the list.

    Approach#5: Using lambda

    Generate a list of random characters from each word in the input list using the random.choice() function. Concatenate the generated characters using the join() function to form a new string.

    Algorithm

    1. Initialize an empty string result.
    2. For each word in the input list test_list, generate a random character using the random.choice() function and append it to the result string.
    3. Return the result string.

    Python3
    import random
    
    test_list = ["Gfg", "is", "Best", "for", "Geeks"]
    
    result = "".join(map(lambda x: random.choice(x), test_list))
    
    print(result)
    

    Output
    Gstre

    Time complexity: O(n*m), n is the number of words in the input list.m is the average length of each word.Generating a random character from a word takes O(1) time.Therefore, generating a list of random characters from each word takes O(m) time. The join() function takes O(n*m) time, since it has to concatenate n lists of m characters each.

    Auxiliary Space: O(n*m), The result string has a maximum length of n*m characters

    Create Quiz

    M

    manjeet_04
    Improve

    M

    manjeet_04
    Improve
    Article Tags :
    • Python
    • Python Programs
    • Python list-programs

    Explore

      Python Fundamentals

      Python Introduction

      2 min read

      Input and Output in Python

      4 min read

      Python Variables

      4 min read

      Python Operators

      4 min read

      Python Keywords

      2 min read

      Python Data Types

      8 min read

      Conditional Statements in Python

      3 min read

      Loops in Python - For, While and Nested Loops

      5 min read

      Python Functions

      5 min read

      Recursion in Python

      4 min read

      Python Lambda Functions

      5 min read

      Python Data Structures

      Python String

      5 min read

      Python Lists

      4 min read

      Python Tuples

      4 min read

      Python Dictionary

      3 min read

      Python Sets

      6 min read

      Python Arrays

      7 min read

      List Comprehension in Python

      4 min read

      Advanced Python

      Python OOP Concepts

      11 min read

      Python Exception Handling

      5 min read

      File Handling in Python

      4 min read

      Python Database Tutorial

      4 min read

      Python MongoDB Tutorial

      3 min read

      Python MySQL

      9 min read

      Python Packages

      10 min read

      Python Modules

      3 min read

      Python DSA Libraries

      15 min read

      List of Python GUI Library and Packages

      3 min read

      Data Science with Python

      NumPy Tutorial - Python Library

      3 min read

      Pandas Tutorial

      4 min read

      Matplotlib Tutorial

      5 min read

      Python Seaborn Tutorial

      3 min read

      StatsModel Library - Tutorial

      3 min read

      Learning Model Building in Scikit-learn

      6 min read

      TensorFlow Tutorial

      2 min read

      PyTorch Tutorial

      6 min read

      Web Development with Python

      Flask Tutorial

      8 min read

      Django Tutorial | Learn Django Framework

      7 min read

      Django ORM - Inserting, Updating & Deleting Data

      4 min read

      Templating With Jinja2 in Flask

      6 min read

      Django Templates

      5 min read

      Build a REST API using Flask - Python

      3 min read

      Building a Simple API with Django REST Framework

      3 min read

      Python Practice

      Python Quiz

      1 min read

      Python Coding Practice

      1 min read

      Python Interview Questions and Answers

      15+ min read
    top_of_element && top_of_screen < bottom_of_element) || (bottom_of_screen > articleRecommendedTop && top_of_screen < articleRecommendedBottom) || (top_of_screen > articleRecommendedBottom)) { if (!isfollowingApiCall) { isfollowingApiCall = true; setTimeout(function(){ if (loginData && loginData.isLoggedIn) { if (loginData.userName !== $('#followAuthor').val()) { is_following(); } else { $('.profileCard-profile-picture').css('background-color', '#E7E7E7'); } } else { $('.follow-btn').removeClass('hideIt'); } }, 3000); } } }); } $(".accordion-header").click(function() { var arrowIcon = $(this).find('.bottom-arrow-icon'); arrowIcon.toggleClass('rotate180'); }); }); window.isReportArticle = false; function report_article(){ if (!loginData || !loginData.isLoggedIn) { const loginModalButton = $('.login-modal-btn') if (loginModalButton.length) { loginModalButton.click(); } return; } if(!window.isReportArticle){ //to add loader $('.report-loader').addClass('spinner'); jQuery('#report_modal_content').load(gfgSiteUrl+'wp-content/themes/iconic-one/report-modal.php', { PRACTICE_API_URL: practiceAPIURL, PRACTICE_URL:practiceURL },function(responseTxt, statusTxt, xhr){ if(statusTxt == "error"){ alert("Error: " + xhr.status + ": " + xhr.statusText); } }); }else{ window.scrollTo({ top: 0, behavior: 'smooth' }); $("#report_modal_content").show(); } } function closeShareModal() { const shareOption = document.querySelector('[data-gfg-action="share-article"]'); shareOption.classList.remove("hover_share_menu"); let shareModal = document.querySelector(".hover__share-modal-container"); shareModal && shareModal.remove(); } function openShareModal() { closeShareModal(); // Remove existing modal if any let shareModal = document.querySelector(".three_dot_dropdown_share"); shareModal.appendChild(Object.assign(document.createElement("div"), { className: "hover__share-modal-container" })); document.querySelector(".hover__share-modal-container").append( Object.assign(document.createElement('div'), { className: "share__modal" }), ); document.querySelector(".share__modal").append(Object.assign(document.createElement('h1'), { className: "share__modal-heading" }, { textContent: "Share to" })); const socialOptions = ["LinkedIn", "WhatsApp","Twitter", "Copy Link"]; socialOptions.forEach((socialOption) => { const socialContainer = Object.assign(document.createElement('div'), { className: "social__container" }); const icon = Object.assign(document.createElement("div"), { className: `share__icon share__${socialOption.split(" ").join("")}-icon` }); const socialText = Object.assign(document.createElement("span"), { className: "share__option-text" }, { textContent: `${socialOption}` }); const shareLink = (socialOption === "Copy Link") ? Object.assign(document.createElement('div'), { role: "button", className: "link-container CopyLink" }) : Object.assign(document.createElement('a'), { className: "link-container" }); if (socialOption === "LinkedIn") { shareLink.setAttribute('href', `https://www.linkedin.com/sharing/share-offsite/?url=${window.location.href}`); shareLink.setAttribute('target', '_blank'); } if (socialOption === "WhatsApp") { shareLink.setAttribute('href', `https://api.whatsapp.com/send?text=${window.location.href}`); shareLink.setAttribute('target', "_blank"); } if (socialOption === "Twitter") { shareLink.setAttribute('href', `https://twitter.com/intent/tweet?url=${window.location.href}`); shareLink.setAttribute('target', "_blank"); } shareLink.append(icon, socialText); socialContainer.append(shareLink); document.querySelector(".share__modal").appendChild(socialContainer); //adding copy url functionality if(socialOption === "Copy Link") { shareLink.addEventListener("click", function() { var tempInput = document.createElement("input"); tempInput.value = window.location.href; document.body.appendChild(tempInput); tempInput.select(); tempInput.setSelectionRange(0, 99999); // For mobile devices document.execCommand('copy'); document.body.removeChild(tempInput); this.querySelector(".share__option-text").textContent = "Copied" }) } }); // document.querySelector(".hover__share-modal-container").addEventListener("mouseover", () => document.querySelector('[data-gfg-action="share-article"]').classList.add("hover_share_menu")); } function toggleLikeElementVisibility(selector, show) { document.querySelector(`.${selector}`).style.display = show ? "block" : "none"; } function closeKebabMenu(){ document.getElementById("myDropdown").classList.toggle("show"); }
geeksforgeeks-footer-logo
Corporate & Communications Address:
A-143, 7th Floor, Sovereign Corporate Tower, Sector- 136, Noida, Uttar Pradesh (201305)
Registered Address:
K 061, Tower K, Gulshan Vivante Apartment, Sector 137, Noida, Gautam Buddh Nagar, Uttar Pradesh, 201305
GFG App on Play Store GFG App on App Store
  • Company
  • About Us
  • Legal
  • Privacy Policy
  • Contact Us
  • Advertise with us
  • GFG Corporate Solution
  • Campus Training Program
  • Explore
  • POTD
  • Job-A-Thon
  • Blogs
  • Nation Skill Up
  • Tutorials
  • Programming Languages
  • DSA
  • Web Technology
  • AI, ML & Data Science
  • DevOps
  • CS Core Subjects
  • Interview Preparation
  • Software and Tools
  • Courses
  • ML and Data Science
  • DSA and Placements
  • Web Development
  • Programming Languages
  • DevOps & Cloud
  • GATE
  • Trending Technologies
  • Videos
  • DSA
  • Python
  • Java
  • C++
  • Web Development
  • Data Science
  • CS Subjects
  • Preparation Corner
  • Interview Corner
  • Aptitude
  • Puzzles
  • GfG 160
  • System Design
@GeeksforGeeks, Sanchhaya Education Private Limited, All rights reserved
Lightbox
Improvement
Suggest Changes
Help us improve. Share your suggestions to enhance the article. Contribute your expertise and make a difference in the GeeksforGeeks portal.
geeksforgeeks-suggest-icon
Create Improvement
Enhance the article with your expertise. Contribute to the GeeksforGeeks community and help create better learning resources for all.
geeksforgeeks-improvement-icon
Suggest Changes
min 4 words, max Words Limit:1000

Thank You!

Your suggestions are valuable to us.

What kind of Experience do you want to share?

Interview Experiences
Admission Experiences
Career Journeys
Work Experiences
Campus Experiences
Competitive Exam Experiences