Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
Binary file added your-code/.DS_Store
Binary file not shown.
359 changes: 359 additions & 0 deletions your-code/.ipynb_checkpoints/challenge-1-checkpoint.ipynb
Original file line number Diff line number Diff line change
@@ -0,0 +1,359 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## Challenge 1: Tuples\n",
"\n",
"#### Do you know you can create tuples with only one element?\n",
"\n",
"**In the cell below, define a variable `tup` with a single element `\"I\"`.**\n",
"\n",
"*Hint: you need to add a comma (`,`) after the single element.*"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"# Your code here\n",
"tup = (\"I\",)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Print the type of `tup`. \n",
"\n",
"Make sure its type is correct (i.e. *tuple* instead of *str*)."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"<class 'tuple'>\n"
]
}
],
"source": [
"# Your code here\n",
"print(type(tup))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Now try to append the following elements to `tup`. \n",
"\n",
"Are you able to do it? Explain.\n",
"\n",
"```\n",
"\"r\", \"o\", \"n\", \"h\", \"a\", \"c\", \"k',\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [
{
"ename": "AttributeError",
"evalue": "'tuple' object has no attribute 'append'",
"output_type": "error",
"traceback": [
"\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
"\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)",
"Input \u001b[0;32mIn [3]\u001b[0m, in \u001b[0;36m<cell line: 4>\u001b[0;34m()\u001b[0m\n\u001b[1;32m 1\u001b[0m \u001b[38;5;66;03m# Your code here\u001b[39;00m\n\u001b[1;32m 2\u001b[0m \u001b[38;5;66;03m# list_example=[\"I\",]\u001b[39;00m\n\u001b[1;32m 3\u001b[0m \u001b[38;5;66;03m# list_example.extend([\"r\",\"o\",\"n\",\"h\",\"a\",\"c\",\"k\"])\u001b[39;00m\n\u001b[0;32m----> 4\u001b[0m \u001b[43mtup\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mappend\u001b[49m(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mr\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n\u001b[1;32m 5\u001b[0m tup\u001b[38;5;241m.\u001b[39mextend(\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mr\u001b[39m\u001b[38;5;124m\"\u001b[39m,\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mo\u001b[39m\u001b[38;5;124m\"\u001b[39m,\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mn\u001b[39m\u001b[38;5;124m\"\u001b[39m,\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mh\u001b[39m\u001b[38;5;124m\"\u001b[39m,\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124ma\u001b[39m\u001b[38;5;124m\"\u001b[39m,\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mc\u001b[39m\u001b[38;5;124m\"\u001b[39m,\u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mk\u001b[39m\u001b[38;5;124m\"\u001b[39m)\n",
"\u001b[0;31mAttributeError\u001b[0m: 'tuple' object has no attribute 'append'"
]
}
],
"source": [
"# Your code here\n",
"# list_example=[\"I\",]\n",
"# list_example.extend([\"r\",\"o\",\"n\",\"h\",\"a\",\"c\",\"k\"])\n",
"tup.append(\"r\")\n",
"tup.extend(\"r\",\"o\",\"n\",\"h\",\"a\",\"c\",\"k\")\n",
"# Your explanation here\n",
"# We cannot mutate tuples due to these data structures are immutable, which means the value inside of a tuple cannot be overwritten."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### How about re-assign a new value to an existing tuple?\n",
"\n",
"Re-assign the following elements to `tup`. Are you able to do it? Explain.\n",
"\n",
"```\n",
"\"I\", \"r\", \"o\", \"n\", \"h\", \"a\", \"c\", \"k\"\n",
"```"
]
},
{
"cell_type": "code",
"execution_count": 4,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"('I',)\n",
"4314244384\n",
"4368773184\n",
"('I', 'r', 'o', 'n', 'h', 'a', 'c', 'k')\n"
]
}
],
"source": [
"# Your code here\n",
"# We can reassign a tuple \n",
"print(tup)\n",
"print(id(tup))\n",
"tup=(\"I\", \"r\", \"o\", \"n\", \"h\", \"a\", \"c\", \"k\")\n",
"print(id(tup))\n",
"\n",
"# We can convert a tuple to List to mutate it and the convert it to a tuple:\n",
"\n",
"# Your explanation here\n",
"print(tup)\n",
"# In the first example we are not mutating the tuple itself because the tuple is pointing to another space on memory, not the same value. We can prove it checking the ids of the variables before an after the reassignment "
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Split `tup` into `tup1` and `tup2` with 4 elements in each. \n",
"\n",
"`tup1` should be `(\"I\", \"r\", \"o\", \"n\")` and `tup2` should be `(\"h\", \"a\", \"c\", \"k\")`.\n",
"\n",
"*Hint: use positive index numbers for `tup1` assignment and use negative index numbers for `tup2` assignment. Positive index numbers count from the beginning whereas negative index numbers count from the end of the sequence.*\n",
"\n",
"Also print `tup1` and `tup2`."
]
},
{
"cell_type": "code",
"execution_count": 5,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"('I', 'r', 'o', 'n')\n",
"('h', 'a', 'c', 'k')\n"
]
}
],
"source": [
"# Your code here\n",
"tup1 = tup[:4]\n",
"tup2 = tup[-4:]\n",
"print(tup1)\n",
"print(tup2)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Add `tup1` and `tup2` into `tup3` using the `+` operator.\n",
"\n",
"Then print `tup3` and check if `tup3` equals to `tup`."
]
},
{
"cell_type": "code",
"execution_count": 6,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"('I', 'r', 'o', 'n', 'h', 'a', 'c', 'k')\n",
"True\n"
]
}
],
"source": [
"# Your code here\n",
"tup3 = tup1 + tup2\n",
"print(tup3)\n",
"print(tup3==tup)"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Count the number of elements in `tup1` and `tup2`. Then add the two counts together and check if the sum is the same as the number of elements in `tup3`"
]
},
{
"cell_type": "code",
"execution_count": 7,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"True\n"
]
}
],
"source": [
"# Your code here\n",
"print(len(tup1)+len(tup2) == len(tup3))"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### What is the index number of `\"h\"` in `tup3`?"
]
},
{
"cell_type": "code",
"execution_count": 8,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The index of \"h\" in tup3 is 4\n"
]
}
],
"source": [
"# Your code here\n",
"print(f'The index of \"h\" in tup3 is {tup3.index(\"h\")}')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Now, use a FOR loop to check whether each letter in the following list is present in `tup3`:\n",
"\n",
"```\n",
"letters = [\"a\", \"b\", \"c\", \"d\", \"e\"]\n",
"```\n",
"\n",
"For each letter you check, print `True` if it is present in `tup3` otherwise print `False`.\n",
"\n",
"*Hint: you only need to loop `letters`. You don't need to loop `tup3` because there is a Python operator `in` you can use. See [reference](https://stackoverflow.com/questions/17920147/how-to-check-if-a-tuple-contains-an-element-in-python).*"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"[True, False, True, False, False]\n",
"[True, False, True, False, False]\n",
"[True, False, True, False, False]\n"
]
}
],
"source": [
"# Your code here\n",
"letters = [\"a\", \"b\", \"c\", \"d\", \"e\"]\n",
"\n",
"output_letters = [True if letter in tup3 else False for letter in letters]\n",
"\n",
"output=list(map(lambda letter: True if letter in tup3 else False, letters))\n",
"\n",
"output_1=[True if ele in tup3 else False for ele in letters]\n",
"\n",
"print(output_letters)\n",
"print(output)\n",
"print(output_1)\n"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"#### How many times does each letter in `letters` appear in `tup3`?\n",
"\n",
"Print out the number of occurrence of each letter."
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"{'a': 1, 'b': 0, 'c': 1, 'd': 0, 'e': 0}\n"
]
}
],
"source": [
"# Your code here\n",
"\n",
"# [\"a\",\"b\", \"c\", \"a\", \"c\"]\n",
"count_letters = {letter: tup3.count(letter) for letter in letters}\n",
"\n",
"print(count_letters)\n",
"\n",
" "
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.9"
}
},
"nbformat": 4,
"nbformat_minor": 2
}
Loading