Python 3, an Illustrated Tour Transcripts
Chapter: Language syntax
Lecture: Walk-through: Unpacking Generalizations

Login or purchase this course to watch this video and the rest of the course contents.
0:00 In this video, we're going to look at gen unpack test, so open that up in your editor.
0:06 The first part says merging dictionaries given the coin value dictionary create a new dictionary, new value, that has the coin value values
0:15 and has the following keys and values, so BCH entry and ETH entry, use extended unpacking no dictionary methods or inserts.
0:24 So I've got coin value right here, it wants me to make a new dictionary below it called new value
0:32 and it needs to be a dictionary that has these new keys and also has the original keys.
0:40 So in order to get the original keys without calling a dictionary method or using an insert I can do this extended unpacking here
0:48 and I can just say coin value right there with the ** in front of it, that's going to unpack the dictionary into this other dictionary
0:56 and then I can say BCH is 1650 and ETH is 1055. Let's give this a run see if it works.
1:16 Okay, so I'm on the next one, so it looks like that worked there. So again, this is a nice way to unpack dictionaries into other dictionaries.
1:25 And if you have multiple dictionaries, you can use multiple dictionaries here, it's not limited to just one.
1:31 Okay, the next part is create a set of the keys from new value by unpacking. Put the result in coins.
1:40 So we want the keys of the new value guy in this coins guy, so in order to get the keys of this we can use this extended unpacking operator
1:51 and just say I want * of new value if we treat new value as a sequence, Python treats a dictionary as a sequence of keys. This should give us the keys.
2:04 Let's run it and see if it works. Okay, it says I can't use a starred expression here.
2:16 That's because I can't have a star by itself, I need to put a comma there at the end. Let's run it again.
2:22 Okay, and now I got an error where it said the assertion failed because I've got a tuple that's not equal to a set.
2:28 Apparently I didn't read well enough that said create a set of the keys. So one way to create a set of them is to put this into a set.
2:37 Let's try and run this and see if it works. Okay, the next part says create a list of the keys from the new value
2:48 and the other coins tuple, put the result in all coins. So we want to make a new variable called all coins and it should have the keys from new value
2:59 and it should have the other coins tuple, what's in other coins, so here's new value
3:07 if we want the keys from that, we can just do that star to get the keys from the new value
3:12 and it wants it in the list, so we're going to say * new value, and the other coins tuple. The other coins tuple is defined right here,
3:25 and if we just want to include that in here, we can just say I'm going to start other coins include that as well.
3:31 So again, this is a nice little syntax here. I'm saying in my list, I want to include this sequence here.
3:38 And this is a dictionary, but we're pulling out the keys and we're also including the sequence here unpacking it.
3:45 This happens to be a tuple but we're going to pull out those guys and insert them into our list. Let's run it and make sure it works.
3:55 Okay, so we get no failures here.

Talk Python's Mastodon Michael Kennedy's Mastodon