Consider the following code in Python: def add_item(lst): lst.append(100) a = [1, 2, 3] add_item(a) print(a) What happens here? The correct explanation is: ✅ An in-place modification occurs on the list. Lists in Python are mutable objects, which means they can be modified after they are created. Let’s break it down step by step. 1️⃣ Creating the list When we write: a = [1, 2, 3] Python creates a list object in memory, and the variable a references it: a → [1, 2, 3] 2️⃣ Calling the function When the function is called: add_item(a) The parameter lst inside the function now references the same list object: a → [1, 2, 3] lst → ↑ (same list) ➡️ Both variables point to the same object in memory. 3️⃣ Inside the function Inside the function we execute: lst.append(100) The append() method modifies the list itself. This is called in-place modification, meaning the original list object is updated instead of creating a new one. The list now becomes: [1, 2, 3, 100] 4️⃣ Printing the result Since both a and lst reference the same list, the change is visible through a. Now when we execute: print(a) Output: [1, 2, 3, 100] 📌 Final thought Understanding how variables reference objects in memory is essential when working with mutable data types like lists in Python. #Python #PythonProgramming #Coding #LearnPython #SoftwareDevelopment
Python List In-Place Modification Example
More Relevant Posts
-
🚀 Learn Python – Tuple Slicing If you want to learn how to extract portions of a tuple, understanding Slicing is essential. It's a fundamental skill for data manipulation in Python. I’ve created a structured learning section on my website that explains tuple slicing step-by-step with practical examples. 📚 Explore the tutorial: https://lnkd.in/g_DmQ7wa 🔹 What you will learn • Extracting sub-tuples using the start:end:step syntax • Using positive and negative indexing for flexible slicing • Reversing tuples easily with slicing tricks • Understanding slicing behavior and default values • Practical examples: Slicing from the beginning, end, or with steps This resource is designed to help developers learn Python with practical examples and structured lessons. Happy Learning! 🚀 #Python #Coding #DataStructures #PythonTips #Programming #LearnPython
To view or add a comment, sign in
-
😊❤️ Todays topic: Topic: *args and **kwargs in Python: ============== Sometimes you don’t know how many arguments a function will receive. Python gives a flexible way to handle this. *args (Non-keyword arguments): Used to pass multiple values as a tuple. def add(*args): print(args) add(1, 2, 3) Output: (1, 2, 3) Explanation: *args collects all positional arguments Inside the function, it behaves like a tuple Example with logic: def add(*args): total = 0 for i in args: total += i return total print(add(1, 2, 3, 4)) Output: 10 **kwargs (Keyword arguments): Used to pass multiple key-value pairs as a dictionary. def info(**kwargs): print(kwargs) info(name="Gemini", role="Developer") Output: {'name': 'Gemini', 'role': 'Developer'} Explanation: **kwargs collects named arguments Inside the function, it behaves like a dictionary Example with logic: def info(**kwargs): for key, value in kwargs.items(): print(key, ":", value) info(name="Gemini", role="Developer") Key Difference: *args → tuple of values **kwargs → dictionary of key-value pairs Order Rule (Important): def func(a, *args, **kwargs): pass Order must be: Normal parameters *args **kwargs 😎Interview Insight: You can use any name instead of args/kwargs, but * and ** are mandatory Very useful in writing flexible and reusable functions Quick Question: What will happen if you pass both *args and **kwargs together in a function call? #Python #Programming #Coding #InterviewPreparation #Developers
To view or add a comment, sign in
-
Python functions with fixed signatures break the moment you need to forward arguments across abstraction boundaries. *args and **kwargs solve that — and this python tutorial goes well past the syntax. — How CPython actually handles variadic calls at the C level (PyTupleObject, PyDictObject, and why there's a real allocation cost) — Why a defaulted parameter before *args is effectively unreachable via positional calling — and the idiomatic fix — The difference between *args isolating the mapping vs sharing mutable values inside it — ParamSpec (PEP 612) for preserving decorator signatures through the type system — TypedDict + Unpack (PEP 692, Python 3.12) for per-key precision on **kwargs — inspect.Parameter.kind for reading variadic signatures at runtime — the foundation of FastAPI and pytest's dispatch logic — Lambda variadic syntax, functools.wraps, kwargs.setdefault patterns, and common SyntaxErrors caught at parse time Includes interactive quizzes, spot-the-bug challenges, a design decision review, and a 15-question final exam with a downloadable certificate of completion. Full guide: https://lnkd.in/gHkdvCn5 #Python #PythonProgramming #SoftwareDevelopment
To view or add a comment, sign in
-
Slow python ? Meet pybind11 ! It started with a simple curiosity while exploring autograd in Deep Learning frameworks. To better understand how gradients work behind the scenes, we implemented #micrograd by Andrej Karpathy a tiny educational autograd engine written in Python. After building it, a natural question emerged: If Python is slow, how are performance-heavy libraries still so fast? Digging deeper, we discovered that many high-performance Python libraries rely on C++ under the hood, with Python acting as a clean interface. This led us to explore pybind11, a lightweight way to bridge Python and C++ ! We then, - Implemented micrograd in C++ - Exposed it to Python using pybind11 - Generated .so modules using setup.py - Recreated a simplified Python plus C++ architecture This small experiment helped us understand how Python can leverage C++ for performance while maintaining developer productivity.. Also, pybind11 is one of the several alternatives like SWIG, Boost.Python, and Cython that can also be used for language bindings. This exploration was done in collaboration with Kavin Kumar, where we jointly worked on both the medium article and the C++ micrograd implementation. To check our implementation, Github: https://lnkd.in/gz6GBuNV For a deep dive, Explore our article: https://lnkd.in/g2y8KRta PS: Not AI Generated :) #Python #CPP #CPlusPlus #Pybind11 #MachineLearning #DeepLearning #Autograd #Micrograd #PythonPerformance
To view or add a comment, sign in
-
Day 21 – List Methods in Python Lists are one of the most commonly used data structures in Python. Python provides built-in methods to easily modify and manage lists. 1. append() Adds an element to the end of the list. numbers = [10, 20, 30] numbers.append(40) print(numbers) Output : [10, 20, 30, 40] 2. insert() Adds an element at a specific position. numbers = [10, 20, 30] numbers.insert(1, 15) print(numbers) Output : [10, 15, 20, 30] 3. remove() Removes a specific value from the list. numbers = [10, 20, 30, 40] numbers.remove(20) print(numbers) Output : [10, 30, 40] 4. pop() Removes an element by index and returns it. numbers = [10, 20, 30] numbers.pop() print(numbers) Output : [10, 20] 5. sort() Sorts the list in ascending order. numbers = [30, 10, 20] numbers.sort() print(numbers) Output : [10, 20, 30] 6. reverse() Reverses the order of elements. numbers = [1, 2, 3, 4] numbers.reverse() print(numbers) Output: [4, 3, 2, 1] 7. count() Counts how many times an element appears. numbers = [1, 2, 2, 3, 2] print(numbers.count(2)) Output:3 8. index() Finds the position of an element. numbers = [10, 20, 30] print(numbers.index(20)) Output:1 #Python #Programming #LearnPython #CodingJourney
To view or add a comment, sign in
-
-
😊❤️ Todays topic: (is vs == in Python) These two look similar, but they check completely different things. == (Equality Operator): Checks if the values are equal a = [1, 2, 3] b = [1, 2, 3] print(a == b) Output: True Explanation: Both lists have the same values, so Python returns True. is (Identity Operator): Checks if both variables refer to the same object in memory a = [1, 2, 3] b = [1, 2, 3] print(a is b) Output: False Explanation: Even though values are same, they are stored in different memory locations. Now see this case: x = 10 y = 10 print(x is y) Output: True Explanation: Python reuses small integers (like -5 to 256), so both variables may point to the same object. Key Difference: == compares values is compares memory location (identity) When to use: Use == when comparing values Use is when checking if two variables refer to the same object (Example: checking None) x = None if x is None: print("No value") Interview Insight: Using is instead of == for value comparison can lead to incorrect results, especially with lists, dictionaries, or large numbers. Quick Question: What will be the output? a = "hello" b = "hello" print(a is b) #Python #Programming #Coding #InterviewPreparation #Developers
To view or add a comment, sign in
-
I’ve just published my first blog post on Medium, diving into a Python concept I recently explored: 👉 Mutable vs Immutable Objects Before this, I used to think variables simply “store values.” But in Python, they actually reference objects in memory. Having learned C previously really helped me grasp this concept more quickly, especially when it comes to understanding how memory and references work. In this post, I break down: • The difference between == and is • Mutable vs immutable objects (with clear examples) • Why l1 = l1 + [4] and l1 += [4] behave differently • How Python passes arguments to functions Writing about what I learn pushes me to go deeper and truly understand the concepts. If you’re learning Python or preparing for technical interviews, this is definitely a topic worth mastering. 📖 Read here: https://lnkd.in/guVnYN3Q #Python #SoftwareEngineering #Programming #LearningJourney #Tech
To view or add a comment, sign in
-
🔥 Python Set Methods If you're learning Python, mastering sets is a must! Here's a simple and clean reference 👇 📌 Python Set Methods Table Input → Method → Output {1, 2} → .add(3) → {1, 2, 3} {1, 2, 3} → .remove(2) → {1, 3} {1, 2, 3} → .discard(4) → {1, 2, 3} {1, 2, 3} → .pop() → Random element removed {1, 2} → .update({3, 4}) → {1, 2, 3, 4} {1, 2, 3} → .clear() → set() {1, 2} → .union({3, 4}) → {1, 2, 3, 4} {1, 2, 3} → .intersection({2, 3, 4}) → {2, 3} {1, 2, 3} → .difference({2}) → {1, 3} {1, 2} → .symmetric_difference({2, 3}) → {1, 3} {1, 2} → .issubset({1, 2, 3}) → True {1, 2, 3} → .issuperset({1, 2}) → True {1, 2} → .isdisjoint({3, 4}) → True {1, 2} → .copy() → {1, 2} 💡 Pro Tip: Use .discard() instead of .remove() when you're not sure if the element exists. 📚 Save this for quick revision & share with your friends! #Python #Coding #Programming #Developers #LearnPython #CodingTips #DataStructures
To view or add a comment, sign in
-
-
Sometimes small Python behaviors end up causing big confusion in production. I faced one such case with shallow copies when handling nested lists and dicts. It looked simple at first but ended up modifying original data silently. Wrote a plain and honest Medium piece about what actually happened and how I fixed it. It is not theory or textbook — just one of those bugs you only understand after you hit it yourself. Friend link below ⬇️ https://lnkd.in/ehYY9zRY #Python #BackendDevelopment #SoftwareEngineering #CodingJourney #TechCommunity #MediumDev #PythonTips #LearningByDebugging
To view or add a comment, sign in
-
🚀Today I explored another important concept in Python — Strings 💻 🔹 What is a String? A string is a sequence of characters used to store text data. Anything written inside quotes (' ' or " ") is considered a string in Python. 🔹 How Strings Work: 1️⃣ Each character has a position (index) 2️⃣ We can access characters using indexing 3️⃣ We can extract parts of a string using slicing 4️⃣ We can modify output using built-in methods 👉 Flow: Text → Access/Manipulate → Output 🔹 Operations I explored: ✔️ Indexing Accessing individual characters using position ✔️ Slicing Extracting a part of the string ✔️ String Methods Using built-in functions like upper(), lower(), replace() 🔹 Example 1: Indexing & Slicing text = "Python" print(text[0]) # P print(text[-1]) # n print(text[0:4]) # Pyth 🔹 Example 2: String Methods msg = "hello world" print(msg.upper()) print(msg.replace("world", "Python")) 🔹 Key Concepts I Learned: ✔️ Indexing (positive & negative) ✔️ Slicing ✔️ Built-in string methods ✔️ Immutability (strings cannot be changed directly) 🔹 Why Strings are Important: 💡 Used in user input 💡 Data processing 💡 Text manipulation in real-world applications 🔹 Real-life understanding: Strings are everywhere — from usernames and passwords to messages and data handling in applications Learning step by step and gaining deeper understanding every day 🚀 #Python #CodingJourney #Strings #Programming
To view or add a comment, sign in
-
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development