List of possible snippets
gurukiran07 opened this issue · 4 comments
I put together a list of questions which I believe are useful. Some of them may have been already covered in the snippets.
Python questions frequently asked on SO:
1. Round to a base value
Example:
# round to a base value 5
10 -> 10
12 -> 10
13 -> 15
14 -> 15
16 -> 15
18 -> 20
2. Check if a string contains a given sub-string
Example:
our_string = "30secondsofpython"
sub_string = "python"
answer -> True
3. Sorted a dictionary by key or value
Example:
# sorted by value
my_dict = {1: 2, 3: 4, 4: 3, 2: 1, 0: 0}
output -> {0: 0, 2: 1, 1: 2, 4: 3, 3: 4}
4. Selecting a random element from a given sequence
Example:
seq = ['a', 'b', 'c', 'd']
output -> 'c' # selected randomly each time.
5. Join a sequence with a given delimiter
Example:
seq = ['a', 'b', 'c', 'd']
delim = '-'
output -> "a-b-c-d"
6. Determine the type of a variable
Example:
a = 10
a_type -> int
b = "string"
b_type -> str
7. Pad a string with given value to make it a specific length
Example:
our_str = "a"
pad_val = "0"
length = 5
output -> "0000a"
8. Convert two lists into a dictionary
Example:
a = ['name', 'place', 'animal', 'thing']
b = ['dexter', 'denver', 'deer', 'door']
output -> {'name':'dexter', 'place':'denver', 'animal':'deer', 'thing':'door'}
9. Trim whitespace from a string.
Example:
our_string = " 30secs of python "
output -> "30secs of python"
10. Determine if an object is iterable
Example:
a = 10
output -> False
b = [1, 2, 3]
output -> True
c,d,e,f,g = {1:2}, {1,2}, frozenset([1,2,3]), "string", (1,2,3)
output -> True, True, True, True, True
11. Return multiple values
This question has two answers, 1 return a list of all possible outputs. 2 Using yield
, a generator function.
IMO, we don't have any snippets related to yield
. We can introduce one of the Python's core functionality using yield
12. Check if a value is NaN
Example:
a = float('nan')
output -> True
13. Return ASCII value of a character and vice-versa.
Example:
a = 'A'
output -> 64
b = 64
output -> 'A'
14. Remove duplicate from a list whilst preserving the order
Using set
doesn't gaurentee the order of the list.
Example:
a = [1,1,2,3,1]
output -> [1, 2, 3]
# Simple example to prove set doesn't preserve order
l = [1,1,8]
set(l)
# {8, 1}
# As 8 and 1 have same hash values
15. Efficient way to remove unordered duplicates
Example:
a = [(1,2), (2,1), (1,2,3), (2,1,3), (3,2,1)]
output -> [(1,2), (1,2,3)]
# There's no hard and fast rule that we keep fisrt ocurrence, any one of them is fine,
# i.e (1,2,3), (2,1,3), (3,2,1) are duplicates keep any one of them.
This list is not exhaustive as of now. I can add more to the list over time. I don't if questions related to files, directories, os, datetime are relevant to this repo. If yes, I can add them too.
I'm adding one more question which has a daily use.
1. Sum of elements in lists of arbitrary number.
input=[1,2,3,4,5],[4,2,6,2,3],[1,9,1,5,2]
#any number of lists can be passed as arguments SumOfLists([1,2,3,4,5],[4,2,6,2,3],[1,9,1,5,2])
output=[6,13,10,11,10]
Hi @gurukiran07 I would like to work on this issue as a part of hacktoberfest. Could you please assign this to me?
Hi, @gurukiran07 I would be glad to help you with this pr as part of the hacktoberfest month
Can you assigned me in? 😄
Thanks for taking the time to compile this list. However, some of these are not worth adding (as they are either built-ins or very simple) and others have already been added in the meantime.