Code With Python
39.2K subscribers
946 photos
32 videos
22 files
803 links
This channel delivers clear, practical content for developers, covering Python, Django, Data Structures, Algorithms, and DSA – perfect for learning, coding, and mastering key programming skills.
Admin: @HusseinSheikho || @Hussein_Sheikho
Download Telegram
OpenCode | AI Coding Tools

📖 An open-source terminal AI coding agent with support for over 75 AI models and IDE integrations.

🏷️ #Python
Quiz: Dependency Management With Python Poetry

📖 Test your knowledge of Python Poetry, from installation and virtual environments to lock files, dependency groups, and updates.

🏷️ #intermediate #best-practices #devops #tools
A bit of Python basics. Day 7. Counting the number of occurrences of an element

If you need to find out how many times an element appears in an iterable collection, you can use the Counter class from the collections module. Counter() returns a dictionary with the number of times each element appears in the sequence. Let's say we want to find out how many times the name Peter appears in the following list. We can use Counter(). See below:

from collections import Counter

list1 = ['John', 'Kelly', 'Peter', 'Moses', 'Peter']

count_peter = Counter(list1).get("Peter")

print(f'The name "Peter" appears in the list '
      f'{count_peter} times.')


Output:

The name "Peter" appears in the list 2 times.

Another way to do this is with a regular for loop. We create a count variable and increase it by 1 each time we find the name Peter in the sequence. This is a naive approach. See below:

list1 = ['John', 'Kelly', 'Peter', 'Moses', 'Peter']
# Create a count variable
count = 0
for name in list1:
    if name == 'Peter':
        count +=1
print(f'The name "Peter" appears in the list'
      f' {count} times.')


Output:

The name "Peter" appears in the list 2 times.

Lists and other iterable data structures in Python have a built-in count() method, which allows us to count the number of occurrences of a specific element. We can use count() to count how many times Peter appears in the list.

list1 = ['John', 'Kelly', 'Peter', 'Moses', 'Peter']

print(f'The name "Peter" appears in the list '
      f'{list1.count("Peter")} times.')


Output:

The name "Peter" appears in the list 2 times.

👉 https://t.iss.one/DataScience4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
⚡️ Python code that works, but does extra work 100 times over

This Python code looks normal.
It works.
It passes the tests.
But it does extra work dozens, and sometimes hundreds of times.

The most common reason is that you accidentally turn a linear algorithm into a quadratic one.

A typical scenario:
- there's a list
- inside the loop, you repeatedly do in, count, index
- everything works quickly with small data
- on real data, the application starts to "slow down for no reason"

The problem is that:
- list is O(n) for searching
- searching inside the loop = O(n²)
- Python honestly does the work you asked it to do

Pros don't think about "whether it works or not", but how many extra operations are being performed.

The correct approach:
- if you need membership checks, use set
- if you're counting elements, use dict or Counter
- if the data doesn't change, pre-calculate it once

This technique is one of the most common sources of hidden performance bugs in Python code.


# Bad: O(n²)
users = ["alice", "bob", "carol", "dave"]

for u in users:
if u in users: # full list traversal every time
process(u)


# Good: O(n)
users = ["alice", "bob", "carol", "dave"]
users_set = set(users)

for u in users:
if u in users_set:
process(u)
4
Личная жизнь почти миллионера в 35, пока мне 22

https://t.iss.one/bozhehraninas
3
reversed() in Python - what supports it and what doesn't

The function reversed() is built-in in Python, but it doesn't work with all data types

✓ Lists - it works
reversed([1, 2, 3]) returns an iterator
list(reversed([1, 2, 3])) → [3, 2, 1]

✓ Tuples - it also works
reversed((1, 2, 3)) can be easily iterated

✗ Sets - not supported
reversed({1, 2, 3}) → TypeError
Why? Sets don't have a fixed order, so they can't be "reversed"

If you need to reverse a set:
list(reversed(list({1, 2, 3})))
A bit of #Python basics. Day 8 - Flatten a nested list

I'll show you three (3) ways to flatten a two-dimensional list. The first method uses a for loop, the second uses the itertools module, and the third uses list comprehension.

⚙️ Using a for loop:

For this method, we use a nested for loop. The outer loop iterates over the inner lists, and the inner loop accesses the elements in the inner lists.

# In [19]:
list1 = [[1, 2, 3],[4, 5, 6]]

newlist = []
for list2 in list1:
    for j in list2:
        newlist.append(j)

print(newlist)


[1, 2, 3, 4, 5, 6]

⚙️ Using the itertools module:

The itertools.chain.from_iterable() function from the itertools module can be used to flatten a nested list. This method may not be suitable for deeply nested lists.

# In [20]:
import itertools

list1 = [[1, 2, 3],[4, 5, 6]]

flat_list = list(itertools.chain.from_iterable(list1))
print(flat_list)


[1, 2, 3, 4, 5, 6]

You can see that the nested loop has been flattened.

⚙️ Using list comprehension

If you don't want to import itertools or write a regular for loop, you can simply use list comprehension.

# In [21]:
list1 = [[1, 2, 3], [4, 5, 6]]

flat_list = [i for j in list1 for i in j]
print(flat_list)


[1, 2, 3, 4, 5, 6]

List comprehension is well suited for moderately nested lists. For deeply nested lists, it is not suitable, as the code becomes harder to read.

⚙️ Using a generator function

You can create a generator function that yields elements from the nested list, and then convert the generator into a list.

# In [22]:
def flatten_generator(nested_list):
    for sublist in nested_list:
        for item in sublist:
            yield item

list1 = [[1, 2, 3], [4, 5, 6]]

flat_list = list(flatten_generator(list1))
flat_list


Out[22]: [1, 2, 3, 4, 5, 6]

The generator method is suitable for flattening large or deeply nested lists. This is because generators are memory-efficient.

👉 https://t.iss.one/DataScience4
Please open Telegram to view this post
VIEW IN TELEGRAM
6
Kilo Code | AI Coding Tools

📖 An open-source AI coding agent for VS Code, JetBrains, and the command line with support for over 500 AI models.

🏷️ #Python
Quiz: The pandas DataFrame: Make Working With Data Delightful

📖 Test your pandas skills! Practice DataFrame basics, column access, creation, sorting, and data manipulation in this interactive quiz.

🏷️ #intermediate #data-science
1
How to Use Note-Taking to Learn Python

📖 Having a hard time retaining information from learning resources? Learn some Python note-taking tips to enhance your learning experience!

🏷️ #basics
Absolute value (module) of a number

Let's say you have a negative number and you want to get its absolute value. For this, you can use the abs() function. The abs() function returns the absolute value of any number (positive, negative, and complex). Below is shown how to get a list of absolute values from a list that contains both negative and positive numbers. We use list comprehension.

list1 = [-12, -45, -67, -89, 34, 67, -13]

print([abs(num) for num in list1])


[12, 45, 67, 89, 34, 67, 13]

Also, abs() can be applied to a floating-point number, and it will return the absolute value. See below:

num = -23.12

print(abs(num))


23.12

➡️ Using the math module

If you need more advanced mathematical functions, you can use fabs() from the math module. This function always returns a float.

import math

num = -23.12
absolute_value = math.fabs(num)
absolute_value


23.12

➡️ Using a lambda function

You can also use lambda to turn a negative number into its absolute value. The code below checks if x is less than zero (that is, if it's a negative value). If so, it returns -x, essentially removing the minus and making the number positive. If x is not negative (greater than or equal to 0), it returns x as it is.

num = -23.12
absolute_value = (lambda x: -x if x < 0 else x)(num)
absolute_value


23.12
Please open Telegram to view this post
VIEW IN TELEGRAM
13
How to Use Git: A Beginner's Guide

📖 Learn how to track your code with Git using clear, step-by-step instructions. Use this guide as a reference for managing projects with version control.

🏷️ #basics #devops
base64 | Python Standard Library

📖 A Python standard library module for encoding binary data as ASCII text using Base16, Base32, Base64, and Base85 schemes.

🏷️ #Python
Quiz: Duck Typing in Python: Writing Flexible and Decoupled Code

📖 Check your grasp of Python's duck typing. Recognize behavior-based interfaces, use protocols and special methods, and know alternatives. Try the quiz.

🏷️ #intermediate #python