Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

Python: सूची के वर्णों को जोड़कर स्ट्रिंग बनाना

Python में वर्णों की सूची को जोड़कर एक स्ट्रिंग बनाने के लिए join() विधि सबसे कुशल और पायथनिक तरीका है। लूप में + ऑपरेटर का उपयोग करना धीमा होता है।

सर्वोत्तम तरीका: join() विधि

my_list = ['p', 'y', 't', 'h', 'o', 'n', '&', 'c', 'o', 'o', 'l']

# join() का उपयोग (सुझाया गया)
result = ''.join(my_list)
print("परिणाम:", result)  # python&cool

# या सीधे
print(''.join(['p', 'y', 't', 'h', 'o', 'n']))  # python

अन्य तरीके (तुलना)

1. लूप में + ऑपरेटर (धीमा, अनुशंसित नहीं)

def convert_spec_vals_loop(my_list):
    new_val = ""
    for element in my_list:
        new_val += element
    return new_val

# यह काम करता है लेकिन बड़ी सूचियों के लिए धीमा है

2. map() + join()

# यदि सूची में गैर-स्ट्रिंग तत्व हों
my_list = [1, 2, 3, 4, 5]
result = ''.join(map(str, my_list))
print(result)  # 12345

3. List Comprehension + join()

my_list = ['P', 'y', 't', 'h', 'o', 'n']
# सभी को लोअरकेस में बदलकर जोड़ें
result = ''.join([c.lower() for c in my_list])
print(result)  # python

4. functools.reduce() (फंक्शनल दृष्टिकोण)

from functools import reduce
my_list = ['a', 'b', 'c']
result = reduce(lambda x, y: x + y, my_list)
print(result)  # abc

प्रदर्शन तुलना

import timeit

# बड़ी सूची
large_list = ['a'] * 10000

# join() - सबसे तेज़
time_join = timeit.timeit(lambda: ''.join(large_list), number=1000)
print(f"join(): {time_join:.4f} सेकंड")

# लूप में + - धीमा
time_loop = timeit.timeit(
    lambda: (lambda lst: (lambda s='': [s := s + c for c in lst])(lst))(large_list), 
    number=1000
)
print(f"लूप +: {time_loop:.4f} सेकंड")

व्यावहारिक उदाहरण

# 1. फ़ाइल पथ जोड़ना
path_parts = ['home', 'user', 'documents', 'file.txt']
path = '/'.join(path_parts)
print(path)  # home/user/documents/file.txt

# 2. CSV लाइन बनाना
fields = ['name', 'age', 'city']
csv_line = ','.join(fields)
print(csv_line)  # name,age,city

# 3. शब्दों से वाक्य बनाना
words = ['Python', 'है', 'बहुत', 'शक्तिशाली']
sentence = ' '.join(words)
print(sentence)  # Python है बहुत शक्तिशाली

# 4. वर्णों को उल्टा करना
chars = ['o', 'l', 'l', 'e', 'h']
reversed_str = ''.join(reversed(chars))
print(reversed_str)  # hello

मूल लेख के कोड में सुधार

# मूल कोड (काम करता है लेकिन अकुशल)
def convert_spec_Vals(my_list):
    new_val = ""
    for element in my_list:
        new_val += element
    return new_val

# सुधारा गया संस्करण
def convert_spec_Vals_improved(my_list):
    return ''.join(my_list)

# उपयोग
my_list = ['p', 'y', 't', 'h', 'o', 'n', '&', 'c', 'o', 'o', 'l']
print("मूल:", convert_spec_Vals(my_list))
print("सुधारा:", convert_spec_Vals_improved(my_list))

सारांश

  • join() सबसे तेज़, पठनीय और पायथनिक तरीका है
  • लूप में + का उपयोग न करें (स्ट्रिंग्स इम्यूटेबल हैं, हर बार नई स्ट्रिंग बनती है)
  • गैर-स्ट्रिंग तत्वों के लिए map(str, ...) या list comprehension उपयोग करें
  • os.path.join() फ़ाइल पथ के लिए प्लेटफॉर्म-स्वतंत्र है
  1. - Python में स्ट्रिंग्स की सूची को टपल्स की सूची में बदलें

    Python के साथ डेटा हेरफेर करते समय, हम एक ऐसी सूची का सामना कर सकते हैं जिसमें संख्याएं स्ट्रिंग्स के रूप में हैं। आगे हम सूची की स्ट्रिंग्स को टपल्स में बदलना चाह सकते हैं। बेशक दी गई स्ट्रिंग्स संख्याओं के एक विशेष प्रारूप में हैं।map और eval के साथहम सूची के प्रत्येक तत्व पर eval लागू करने के लिए

  1. - Python में स्ट्रिंग्स और वर्णों की सूची को वर्णों की सूची में बदलें

    सूचियों के साथ काम करते समय, हम एक ऐसी स्थिति का सामना कर सकते हैं जहां हमें एक स्ट्रिंग को प्रोसेस करना है और आगे की प्रोसेसिंग के लिए उसके व्यक्तिगत वर्ण प्राप्त करने हैं। इस लेख में हम ऐसा करने के विभिन्न तरीके देखेंगे।सूची समझ के साथहम सूची के प्रत्येक तत्व के माध्यम से जाने के लिए एक फॉर लूप डि

  1. - सूची के सभी सबलिस्ट प्रिंट करने के लिए पायथन प्रोग्राम

    समस्या विवरण एक सूची दी गई है, उसके सभी सबलिस्ट प्रिंट करें। उदाहरण इनपुट: list = [1, 2, 3] आउटपुट: [], [1], [1, 2], [1, 2, 3], [2], [2, 3], [3] एल्गोरिदम एक सूची दी गई है। एक खाली सबलिस्ट लें। दिए गए सूची की लंबाई तक एक लूप चलाएं। i+1 से सूची की लंबाई तक एक और लूप चलाएं ताकि i से दाईं ओर के सभी