Python Tutorial
File handling, python modules, python numpy, python pandas, python matplotlib, python scipy, machine learning, python mysql, python mongodb, python reference, module reference, python how to, python examples, python variables - assign multiple values, many values to multiple variables.
Python allows you to assign values to multiple variables in one line:
Note: Make sure the number of variables matches the number of values, or else you will get an error.
One Value to Multiple Variables
And you can assign the same value to multiple variables in one line:
Unpack a Collection
If you have a collection of values in a list, tuple etc. Python allows you to extract the values into variables. This is called unpacking .
Unpack a list:
Learn more about unpacking in our Unpack Tuples Chapter.
Video: Python Variable Names
COLOR PICKER
Contact Sales
If you want to use W3Schools services as an educational institution, team or enterprise, send us an e-mail: [email protected]
Report Error
If you want to report an error, or if you want to make a suggestion, send us an e-mail: [email protected]
Top Tutorials
Top references, top examples, get certified.
Multiple assignment in Python: Assign multiple values or the same value to multiple variables
In Python, the = operator is used to assign values to variables.
You can assign values to multiple variables in one line.
Assign multiple values to multiple variables
Assign the same value to multiple variables.
You can assign multiple values to multiple variables by separating them with commas , .
You can assign values to more than three variables, and it is also possible to assign values of different data types to those variables.
When only one variable is on the left side, values on the right side are assigned as a tuple to that variable.
If the number of variables on the left does not match the number of values on the right, a ValueError occurs. You can assign the remaining values as a list by prefixing the variable name with * .
For more information on using * and assigning elements of a tuple and list to multiple variables, see the following article.
- Unpack a tuple and list in Python
You can also swap the values of multiple variables in the same way. See the following article for details:
- Swap values in a list or values of variables in Python
You can assign the same value to multiple variables by using = consecutively.
For example, this is useful when initializing multiple variables with the same value.
After assigning the same value, you can assign a different value to one of these variables. As described later, be cautious when assigning mutable objects such as list and dict .
You can apply the same method when assigning the same value to three or more variables.
Be careful when assigning mutable objects such as list and dict .
If you use = consecutively, the same object is assigned to all variables. Therefore, if you change the value of an element or add a new element in one variable, the changes will be reflected in the others as well.
If you want to handle mutable objects separately, you need to assign them individually.
after c = []; d = [] , c and d are guaranteed to refer to two different, unique, newly created empty lists. (Note that c = d = [] assigns the same object to both c and d .) 3. Data model — Python 3.11.3 documentation
You can also use copy() or deepcopy() from the copy module to make shallow and deep copies. See the following article.
- Shallow and deep copy in Python: copy(), deepcopy()
Related Categories
Related articles.
- NumPy: arange() and linspace() to generate evenly spaced values
- Chained comparison (a < x < b) in Python
- pandas: Get first/last n rows of DataFrame with head() and tail()
- pandas: Filter rows/columns by labels with filter()
- Get the filename, directory, extension from a path string in Python
- Sign function in Python (sign/signum/sgn, copysign)
- How to flatten a list of lists in Python
- None in Python
- Create calendar as text, HTML, list in Python
- NumPy: Insert elements, rows, and columns into an array with np.insert()
- Shuffle a list, string, tuple in Python (random.shuffle, sample)
- Add and update an item in a dictionary in Python
- Cartesian product of lists in Python (itertools.product)
- Remove a substring from a string in Python
- pandas: Extract rows that contain specific strings from a DataFrame
Trey Hunner
I help developers level-up their python skills, multiple assignment and tuple unpacking improve python code readability.
Mar 7 th , 2018 4:30 pm | Comments
Whether I’m teaching new Pythonistas or long-time Python programmers, I frequently find that Python programmers underutilize multiple assignment .
Multiple assignment (also known as tuple unpacking or iterable unpacking) allows you to assign multiple variables at the same time in one line of code. This feature often seems simple after you’ve learned about it, but it can be tricky to recall multiple assignment when you need it most .
In this article we’ll see what multiple assignment is, we’ll take a look at common uses of multiple assignment, and then we’ll look at a few uses for multiple assignment that are often overlooked.
Note that in this article I will be using f-strings which are a Python 3.6+ feature. If you’re on an older version of Python, you’ll need to mentally translate those to use the string format method.
How multiple assignment works
I’ll be using the words multiple assignment , tuple unpacking , and iterable unpacking interchangeably in this article. They’re all just different words for the same thing.
Python’s multiple assignment looks like this:
Here we’re setting x to 10 and y to 20 .
What’s happening at a lower level is that we’re creating a tuple of 10, 20 and then looping over that tuple and taking each of the two items we get from looping and assigning them to x and y in order.
This syntax might make that a bit more clear:
Parenthesis are optional around tuples in Python and they’re also optional in multiple assignment (which uses a tuple-like syntax). All of these are equivalent:
Multiple assignment is often called “tuple unpacking” because it’s frequently used with tuples. But we can use multiple assignment with any iterable, not just tuples. Here we’re using it with a list:
And with a string:
Anything that can be looped over can be “unpacked” with tuple unpacking / multiple assignment.
Here’s another example to demonstrate that multiple assignment works with any number of items and that it works with variables as well as objects we’ve just created:
Note that on that last line we’re actually swapping variable names, which is something multiple assignment allows us to do easily.
Alright, let’s talk about how multiple assignment can be used.
Unpacking in a for loop
You’ll commonly see multiple assignment used in for loops.
Let’s take a dictionary:
Instead of looping over our dictionary like this:
You’ll often see Python programmers use multiple assignment by writing this:
When you write the for X in Y line of a for loop, you’re telling Python that it should do an assignment to X for each iteration of your loop. Just like in an assignment using the = operator, we can use multiple assignment here.
Is essentially the same as this:
We’re just not doing an unnecessary extra assignment in the first example.
So multiple assignment is great for unpacking dictionary items into key-value pairs, but it’s helpful in many other places too.
It’s great when paired with the built-in enumerate function:
And the zip function:
If you’re unfamiliar with enumerate or zip , see my article on looping with indexes in Python .
Newer Pythonistas often see multiple assignment in the context of for loops and sometimes assume it’s tied to loops. Multiple assignment works for any assignment though, not just loop assignments.
An alternative to hard coded indexes
It’s not uncommon to see hard coded indexes (e.g. point[0] , items[1] , vals[-1] ) in code:
When you see Python code that uses hard coded indexes there’s often a way to use multiple assignment to make your code more readable .
Here’s some code that has three hard coded indexes:
We can make this code much more readable by using multiple assignment to assign separate month, day, and year variables:
Whenever you see hard coded indexes in your code, stop to consider whether you could use multiple assignment to make your code more readable.
Multiple assignment is very strict
Multiple assignment is actually fairly strict when it comes to unpacking the iterable we give to it.
If we try to unpack a larger iterable into a smaller number of variables, we’ll get an error:
If we try to unpack a smaller iterable into a larger number of variables, we’ll also get an error:
This strictness is pretty great. If we’re working with an item that has a different size than we expected, the multiple assignment will fail loudly and we’ll hopefully now know about a bug in our program that we weren’t yet aware of.
Let’s look at an example. Imagine that we have a short command line program that parses command-line arguments in a rudimentary way, like this:
Our program is supposed to accept 2 arguments, like this:
But if someone called our program with three arguments, they will not see an error:
There’s no error because we’re not validating that we’ve received exactly 2 arguments.
If we use multiple assignment instead of hard coded indexes, the assignment will verify that we receive exactly the expected number of arguments:
Note : we’re using the variable name _ to note that we don’t care about sys.argv[0] (the name of our program). Using _ for variables you don’t care about is just a convention.
An alternative to slicing
So multiple assignment can be used for avoiding hard coded indexes and it can be used to ensure we’re strict about the size of the tuples/iterables we’re working with.
Multiple assignment can be used to replace hard coded slices too!
Slicing is a handy way to grab a specific portion of the items in lists and other sequences.
Here are some slices that are “hard coded” in that they only use numeric indexes:
Whenever you see slices that don’t use any variables in their slice indexes, you can often use multiple assignment instead. To do this we have to talk about a feature that I haven’t mentioned yet: the * operator.
In Python 3.0, the * operator was added to the multiple assignment syntax, allowing us to capture remaining items after an unpacking into a list:
The * operator allows us to replace hard coded slices near the ends of sequences.
These two lines are equivalent:
These two lines are equivalent also:
With the * operator and multiple assignment you can replace things like this:
With more descriptive code, like this:
So if you see hard coded slice indexes in your code, consider whether you could use multiple assignment to clarify what those slices really represent.
Deep unpacking
This next feature is something that long-time Python programmers often overlook. It doesn’t come up quite as often as the other uses for multiple assignment that I’ve discussed, but it can be very handy to know about when you do need it.
We’ve seen multiple assignment for unpacking tuples and other iterables. We haven’t yet seen that this is can be done deeply .
I’d say that the following multiple assignment is shallow because it unpacks one level deep:
And I’d say that this multiple assignment is deep because it unpacks the previous point tuple further into x , y , and z variables:
If it seems confusing what’s going on above, maybe using parenthesis consistently on both sides of this assignment will help clarify things:
We’re unpacking one level deep to get two objects, but then we take the second object and unpack it also to get 3 more objects. Then we assign our first object and our thrice-unpacked second object to our new variables ( color , x , y , and z ).
Take these two lists:
Here’s an example of code that works with these lists by using shallow unpacking:
And here’s the same thing with deeper unpacking:
Note that in this second case, it’s much more clear what type of objects we’re working with. The deep unpacking makes it apparent that we’re receiving two 2-itemed tuples each time we loop.
Deep unpacking often comes up when nesting looping utilities that each provide multiple items. For example, you may see deep multiple assignments when using enumerate and zip together:
I said before that multiple assignment is strict about the size of our iterables as we unpack them. With deep unpacking we can also be strict about the shape of our iterables .
This works:
But this buggy code works too:
Whereas this works:
But this does not:
With multiple assignment we’re assigning variables while also making particular assertions about the size and shape of our iterables. Multiple assignment will help you clarify your code to both humans (for better code readability ) and to computers (for improved code correctness ).
Using a list-like syntax
I noted before that multiple assignment uses a tuple-like syntax, but it works on any iterable. That tuple-like syntax is the reason it’s commonly called “tuple unpacking” even though it might be more clear to say “iterable unpacking”.
I didn’t mention before that multiple assignment also works with a list-like syntax .
Here’s a multiple assignment with a list-like syntax:
This might seem really strange. What’s the point of allowing both list-like and tuple-like syntaxes?
I use this feature rarely, but I find it helpful for code clarity in specific circumstances.
Let’s say I have code that used to look like this:
And our well-intentioned coworker has decided to use deep multiple assignment to refactor our code to this:
See that trailing comma on the left-hand side of the assignment? It’s easy to miss and it makes this code look sort of weird. What is that comma even doing in this code?
That trailing comma is there to make a single item tuple. We’re doing deep unpacking here.
Here’s another way we could write the same code:
This might make that deep unpacking a little more obvious but I’d prefer to see this instead:
The list-syntax in our assignment makes it more clear that we’re unpacking a one-item iterable and then unpacking that single item into value and times_seen variables.
When I see this, I also think I bet we’re unpacking a single-item list . And that is in fact what we’re doing. We’re using a Counter object from the collections module here. The most_common method on Counter objects allows us to limit the length of the list returned to us. We’re limiting the list we’re getting back to just a single item.
When you’re unpacking structures that often hold lots of values (like lists) and structures that often hold a very specific number of values (like tuples) you may decide that your code appears more semantically accurate if you use a list-like syntax when unpacking those list-like structures.
If you’d like you might even decide to adopt a convention of always using a list-like syntax when unpacking list-like structures (frequently the case when using * in multiple assignment):
I don’t usually use this convention myself, mostly because I’m just not in the habit of using it. But if you find it helpful, you might consider using this convention in your own code.
When using multiple assignment in your code, consider when and where a list-like syntax might make your code more descriptive and more clear. This can sometimes improve readability.
Don’t forget about multiple assignment
Multiple assignment can improve both the readability of your code and the correctness of your code. It can make your code more descriptive while also making implicit assertions about the size and shape of the iterables you’re unpacking.
The use for multiple assignment that I often see forgotten is its ability to replace hard coded indexes , including replacing hard coded slices (using the * syntax). It’s also common to overlook the fact that multiple assignment works deeply and can be used with both a tuple-like syntax and a list-like syntax.
It’s tricky to recognize and remember all the cases that multiple assignment can come in handy. Please feel free to use this article as your personal reference guide to multiple assignment.
Get practice with multiple assignment
You don’t learn by reading articles like this one, you learn by writing code .
To get practice writing some readable code using tuple unpacking, sign up for Python Morsels using the form below. If you sign up to Python Morsels using this form, I’ll immediately send you an exercise that involves tuple unpacking.
Intro to Python courses often skip over some fundamental Python concepts .
Sign up below and I'll share ideas new Pythonistas often overlook .
You're nearly signed up. You just need to check your email and click the link there to set your password .
Right after you've set your password you'll receive your first Python Morsels exercise.
- Data Science
- Trending Now
- Data Structures
- System Design
- Foundational Courses
- Practice Problem
- Machine Learning
- Data Science Using Python
- Web Development
- Web Browser
- Design Patterns
- Software Development
- Product Management
- Programming
Multiple Assignment in Python
Assigning multiple variables in one line in python.
In this video, we will explore how to assign multiple variables in one line in Python. This technique allows for concise and readable code, especially when you need to initialize multiple variables simultaneously. This tutorial is perfect for students, professionals, or anyone interested in enhancing their Python programming skills.
Why Assign Multiple Variables in One Line?
Assigning multiple variables in one line helps to:
- Write more concise and readable code.
- Initialize multiple variables simultaneously.
- Simplify code maintenance and debugging.
Key Concepts
1. Multiple Assignment:
- The ability to assign values to multiple variables in a single line of code.
2. Tuple Unpacking:
- A technique that allows you to assign values from a tuple to multiple variables in one line.
How to Assign Multiple Variables in One Line
1. Basic Multiple Assignment:
- Assign values to multiple variables separated by commas.
- Use tuples to assign multiple variables in a single line.
3. List Unpacking:
- Similar to tuple unpacking, but using lists.
Practical Examples
Example 1: Basic Multiple Assignment
- Assign values to multiple variables in one line.
- Example: a, b, c = 1, 2, 3
Example 2: Tuple Unpacking
- Use tuple unpacking to assign values.
- Example: x, y = (4, 5)
Example 3: List Unpacking
- Use list unpacking to assign values.
- Example: m, n, o = [6, 7, 8]
Practical Applications
Data Initialization:
- Initialize multiple variables with values in one line for cleaner and more concise code.
Function Returns:
- Assign multiple return values from a function call to separate variables in one line.
Swapping Variables:
- Swap values of two variables in one line using tuple unpacking.
- Example: a, b = b, a
Multiple Assignment Syntax in Python
The multiple assignment syntax, often referred to as tuple unpacking or extended unpacking, is a powerful feature in Python. In this tutorial, we will demonstrate the basics of Python's multiple assignment syntax through a series of practical examples.
The multiple assignment syntax, often referred to as tuple unpacking or extended unpacking, is a powerful feature in Python. There are several ways to assign multiple values to variables at once.
Let's start with a first example that uses extended unpacking . This syntax is used to assign values from an iterable (in this case, a string) to multiple variables:
a : This variable will be assigned the first element of the iterable, which is 'D' in the case of the string 'Devlabs'.
*b : The asterisk (*) before b is used to collect the remaining elements of the iterable (the middle characters in the string 'Devlabs') into a list: ['e', 'v', 'l', 'a', 'b']
c : This variable will be assigned the last element of the iterable: 's'.
The multiple assignment syntax can also be used for numerous other tasks:
Swapping Values
This swaps the values of variables a and b without needing a temporary variable.
Splitting a List
first will be 1, and rest will be a list containing [2, 3, 4, 5] .
Assigning Multiple Values from a Function
This assigns the values returned by get_values() to x, y, and z.
Ignoring Values
Here, you're ignoring the first value with an underscore _ and assigning "Hello" to the important_value . In Python, the underscore is commonly used as a convention to indicate that a variable is being intentionally ignored or is a placeholder for a value that you don't intend to use.
Unpacking Nested Structures
This unpacks a nested structure (Tuple in this example) into separate variables. We can use similar syntax also for Dictionaries:
In this case, we first extract the 'person' dictionary from data, and then we use multiple assignment to further extract values from the nested dictionaries, making the code more concise.
Extended Unpacking with Slicing
first will be 1, middle will be a list containing [2, 3, 4], and last will be 5.
Split a String into a List
*split, is used for iterable unpacking. The asterisk (*) collects the remaining elements into a list variable named split . In this case, it collects all the characters from the string.
The comma , after *split is used to indicate that it's a single-element tuple assignment. It's a syntax requirement to ensure that split becomes a list containing the characters.
Rockstar Games Accused of Bypassing DRM Protection on Steam with Razor 1911 Crack
Here we go again: Rockstar Games is alleged to have used cracks from Razor 1911 to circumvent the DRM protection of its own games sold on Steam.
Microsoft Annoys Chrome Users with Disturbing Bing Ads
Microsoft is known for its aggressive marketing tactics, and the latest move by the tech giant to lure Chrome users to Bing is no exception. The company has been using various methods to persuade users of Windows 10 and 11 who use Google Chrome as their default browser to switch to Bing as their default search engine.
- YouTube Channel
Python Multiple Assignments
admin Python
Table of Contents
In Python, you can use multiple assignments to assign values to multiple variables in a single line. This can make your code more concise and readable.
Multiple Assignments
Python allows us to assign the same value to multiple variables.
For Example
Consider the following statement:
This statement will assign value 5 to all three variables in a single statement.
In the normal approach, we use different statements to assign values.
# Assigning values in different statements a = 1 b = 2 c = 3
We can also assign different values to multiple variables. Assigning multiple values in a single statement.
For example :
# Multiple assignment a, b, c = 1, 2, 3
This statement will assign value 1 to a variable, value 2 to b variable, and 3 to the c variable.
This feature is also used for unpacking lists and tuples.
# Unpacking a list numbers = [1, 2, 3] x, y, z = numbers
It’s a powerful feature that can enhance the readability of your code when used appropriately.
Python Tutorials
Python Tutorial on this website can be found at:
https://www.testingdocs.com/python-tutorials/
More information on Python is available at the official website:
https://www.python.org
Related Posts
Popular Python IDEs
Popular Python IDEs : Python is one of the most popular programming languages, and there are various Integrated Development Environments (IDEs) for developing
Python Language vs C++ Language
Python Language vs C++ Language : Python is an object-oriented, high-level programming language developed by Guido Van Rossum.
Python Anonymous Functions
Let’s learn about Python anonymous functions in this tutorial. These functions are called anonymous because they do not follow the standard Python
IMAGES
VIDEO
COMMENTS
Using the multiple variable assignment technique in Bash scripts can make our code look compact and give us the benefit of better performance, particularly when we want to assign multiple variables by the output of expensive command execution. For example, let's say we want to assign seven variables - the calendar week number, year, month ...
Chapter 5 of the Bash Cookbook by O'Reilly, discusses (at some length) the reasons for the requirement in a variable assignment that there be no spaces around the '=' sign MYVAR="something" The explanation has something to do with distinguishing between the name of a command and a variable (where '=' may be a valid argument).
Assign Values to Multiple Variables in One Line. Given above is the mechanism for assigning just variables in Python but it is possible to assign multiple variables at the same time. Python assigns values from right to left. When assigning multiple variables in a single line, different variable names are provided to the left of the assignment ...
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
You can also swap the values of multiple variables in the same way. See the following article for details: Swap values in a list or values of variables in Python; Assign the same value to multiple variables. You can assign the same value to multiple variables by using = consecutively.
Note: we're using the variable name _ to note that we don't care about sys.argv[0] (the name of our program). Using _ for variables you don't care about is just a convention.. An alternative to slicing. So multiple assignment can be used for avoiding hard coded indexes and it can be used to ensure we're strict about the size of the tuples/iterables we're working with.
Initialize multiple variables simultaneously. Simplify code maintenance and debugging. Key Concepts. 1. Multiple Assignment: The ability to assign values to multiple variables in a single line of code. 2. Tuple Unpacking: A technique that allows you to assign values from a tuple to multiple variables in one line. How to Assign Multiple ...
The multiple assignment syntax, often referred to as tuple unpacking or extended unpacking, is a powerful feature in Python. There are several ways to assign multiple values to variables at once. Let's start with a first example that uses extended unpacking. This syntax is used to assign values from an iterable (in this case, a string) to ...
Y = Z and X = Z (I.E., Assign the value of Z to both X and Y) But C language treats the multiple assignments like a chain, like this: In C, "X = Y = Z" means that the value of Z must be first assigned to Y, and then the value of Y must be assigned to X. Here is a sample program to see how the multiple assignments in single line work:
Python Multiple Assignments. In Python, you can use multiple assignments to assign values to multiple variables in a single line. This can make your code more concise and readable. Multiple Assignments. Python allows us to assign the same value to multiple variables. For Example. Consider the following statement: a=b=c=5