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

Python: सूची के प्रत्येक तत्व में दी गई संख्या जोड़ना

Python में सूची के प्रत्येक तत्व में एक निश्चित संख्या (स्केलर) जोड़ने के लिए List Comprehension सबसे सरल और पायथनिक तरीका है।

उदाहरण

my_list = [25, 36, 75, 36, 17, 7, 8, 0]
print("मूल सूची:", my_list)

my_key = 6
print(f"जोड़ने वाला मान: {my_key}")

# विधि 1: List Comprehension (सुझाया गया)
my_result = [x + my_key for x in my_list]
print("परिणाम (list comp):", my_result)

# विधि 2: map() + lambda
my_result2 = list(map(lambda x: x + my_key, my_list))
print("परिणाम (map):", my_result2)

# विधि 3: NumPy (बड़े संख्यात्मक डेटा के लिए)
import numpy as np
arr = np.array(my_list)
my_result3 = arr + my_key
print("परिणाम (NumPy):", my_result3.tolist())

# विधि 4: लूप (मूल लेख)
my_result4 = []
for x in my_list:
    my_result4.append(x + my_key)
print("परिणाम (लूप):", my_result4)

आउटपुट

मूल सूची: [25, 36, 75, 36, 17, 7, 8, 0]
जोड़ने वाला मान: 6
परिणाम (list comp): [31, 42, 81, 42, 23, 13, 14, 6]
परिणाम (map): [31, 42, 81, 42, 23, 13, 14, 6]
परिणाम (NumPy): [31, 42, 81, 42, 23, 13, 14, 6]
परिणाम (लूप): [31, 42, 81, 42, 23, 13, 14, 6]

इन-प्लेस संशोधन (मूल सूची बदलना)

# विधि 1: इंडेक्स असाइनमेंट
for i in range(len(my_list)):
    my_list[i] += my_key
print("इन-प्लेस:", my_list)

# विधि 2: enumerate (अधिक पायथनिक)
my_list = [25, 36, 75, 36, 17, 7, 8, 0]  # रीसेट
for i, val in enumerate(my_list):
    my_list[i] = val + my_key
print("enumerate इन-प्लेस:", my_list)

फंक्शन के रूप में

def add_scalar_to_list(lst, scalar, inplace=False):
    """सूची के प्रत्येक तत्व में स्केलर जोड़ें"""
    if inplace:
        for i in range(len(lst)):
            lst[i] += scalar
        return lst
    else:
        return [x + scalar for x in lst]

# उपयोग
original = [1, 2, 3]
new_list = add_scalar_to_list(original, 10)
print(f"मूल: {original}, नया: {new_list}")

add_scalar_to_list(original, 5, inplace=True)
print(f"इन-प्लेस: {original}")

विविधताएं

1. तत्व-वार गुणा/भाग/घात

my_list = [2, 4, 6, 8]
factor = 3

print("गुणा:", [x * factor for x in my_list])      # [6, 12, 18, 24]
print("भाग:", [x / factor for x in my_list])       # [0.66, 1.33, 2.0, 2.66]
print("घात:", [x ** factor for x in my_list])      # [8, 64, 216, 512]
print("मॉड्यूलो:", [x % factor for x in my_list])  # [2, 1, 0, 2]

2. दो सूचियों को तत्व-वार जोड़ना

list1 = [1, 2, 3]
list2 = [10, 20, 30]

# zip के साथ
added = [a + b for a, b in zip(list1, list2)]
print("zip जोड़:", added)  # [11, 22, 33]

# NumPy के साथ
import numpy as np
print("NumPy जोड़:", (np.array(list1) + np.array(list2)).tolist())

3. शर्तानुसार जोड़ना

# केवल सम संख्याओं में 10 जोड़ें
conditional = [x + 10 if x % 2 == 0 else x for x in my_list]
print("शर्तानुसार:", conditional)

# थ्रेशोल्ड से ऊपर वालों में जोड़ें
threshold = 20
threshold_add = [x + 5 if x > threshold else x for x in my_list]
print("थ्रेशोल्ड:", threshold_add)

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

import timeit

large_list = list(range(100000))
scalar = 7

t_comp = timeit.timeit(lambda: [x + scalar for x in large_list], number=10)
t_map = timeit.timeit(lambda: list(map(lambda x: x + scalar, large_list)), number=10)
t_np = timeit.timeit(lambda: (np.array(large_list) + scalar).tolist(), number=10)
t_loop = timeit.timeit(
    lambda: (lambda lst: [lst.__setitem__(i, lst[i]+scalar) for i in range(len(lst))] or lst)(large_list[:]), 
    number=10
)

print(f"List comprehension: {t_comp:.4f}s")
print(f"map + lambda: {t_map:.4f}s")
print(f"NumPy: {t_np:.4f}s")
print(f"लूप: {t_loop:.4f}s")

सामान्य परिणाम

List comprehension: 0.0452s
map + lambda: 0.0678s
NumPy: 0.0089s
लूप: 0.1234s

NumPy सबसे तेज़ है बड़े डेटा के लिए, List Comprehension सामान्य उपयोग के लिए सर्वोत्तम संतुलन।

  1. - Python प्रोग्राम से सूची में दूसरी सबसे बड़ी संख्या खोजना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक सूची दी गई है, हमें सूची में दूसरी सबसे बड़ी संख्या प्रदर्शित करने की आवश्यकता है। समस्या को हल करने के लिए तीन दृष्टिकोण हैं। दृष्टिकोण 1 - हम set() फ़ंक्शन और remove() फ़ंक्शन का उपयोग करते हैं उदाहरण list

  1. - पायथन में append() और extend() फ़ंक्शन

    append() और extend() फ़ंक्शन का उपयोग पायथन सूची के साथ इसके तत्वों की संख्या बढ़ाने के लिए किया जाता है। लेकिन दोनों का व्यवहार अलग होता है जैसा कि नीचे दिखाया गया है। append() सिंटैक्स: list_name.append(value) यह केवल एक तर्क लेता है। यह फ़ंक्शन आने वाले तत्व को सूची के अंत में एक नए तत्व के रू

  1. - Python में दी गई लिस्ट में किसी आइटम का इंडेक्स कैसे खोजें?

    लिस्ट में किसी एलिमेंट की पोजीशन (किसी भी सीक्वेंस डेटा टाइप के लिए) index() मेथड द्वारा प्राप्त की जाती है। यह मेथड दिए गए एलिमेंट के पहले ऑकरेंस को ढूंढता है। >>> L1=[45, 32, 100, 10, 24, 56] >>> L1.index(24) 4