[Python] Một số tips khi code (Phần 1)

Python hiện nay đang trở thành xu hướng mà đa số các bạn trẻ, các lập trình viên hướng đến. Một phần vì nó đa dạng về lĩnh vực, thứ hai cũng là sự đơn giản trong code của nó. Trong bài này mình sẽ giới thiệu cho các bạn một vài mẹo vô cùng hữu ích. Giúp các bạn có thể giảm được lượng code khá đáng kể và tăng hiệu năng cho các đoạn code của bạn.

1. Toán tử 3 ngôi

Một trong số lệnh điều kiện được chúng ta sử dụng nhiều nhất đó là cặp lệnh If ... else Vậy chúng ta hay thường gặp vấn đề gì khi sử dụng cặp lệnh này, mình sẽ trình bày ngay dưới đây thôi: Thông thường, theo bản năng chúng ta sẽ viết một đoạn code if ... else như sau:

if condition:
    return True
else:
    return False

Nhưng khi nhìn lại, chỉ return True hoặc False thôi mà chúng ta mất tới 4 dòng cho nó. Do đó, mình sẽ viết như sau

return True if condition else False

2. Sử dụng if ... in

Giả sử, chúng ta có biến vehicle = 'car'. Để kiểm tra car có trùng với một phần tử nào đó trong vehicles = ['bike', 'motorbike', 'car'] không:

for item in vehicles:
    if vehicle === item:
        print('Matched!')

Thay vào đó, chúng ta chỉ cần viết:

if vehicle in vehicles:
    print('Matched')

Nhìn đã ngắn hơn rồi đúng không nào? Nhưng kết hợp với toán tử 3 ngôi ở trên thì:

print('Matched') if vehicle in vehicles

3. Sử dụng điều kiện ngược

if condition:
    <statements>
else:
    break

Trong một số trường hợp cần xử lý nếu thỏa mãn điều kiên, ngược lại sẽ break luôn, và khi sử dụng điều kiện ngược lại sẽ là:

if not condition:
    break
<statements>

4. Kiểm tra empty

Để kiểm tra một list, dict... có empty hay không:

if len(list) > 0:
    <statements>
    
hay là:
if list != []:
    <statements>

Thay vào đó, đơn giản hơn ta chỉ cần:

if list:
    <statements>

5. List comprehension

Để thêm một phần tử vào một list, ta sẽ for từng phần tử rồi append chúng vào list đúng không nào.

list_numbers = []
for i in range(5):
    list_numbers.append(i)

Ngắn gọn hơn sẽ là:

list_numbers = [i for i in range(5)]

hoặc thêm điều kiện:

list_number_even = [i for i in range(5) if i % 2 == 0]

6. any() và all()

a. any()

any() được sử dụng khi chỉ cần một thỏa mãn điều kiện:

for i in list_numbers:
    if i > 0 and i < 10:
        return True

Sử dụng any() chúng ta sẽ được:

list_numbers = [0, 5, 15]
any(i > 0 and i < 10 for i in list_numbers)

# True

Lí do kết quả ra True bởi vì đã có 5 thỏa mãn điều kiện.

b. all()

all() thì hoạt động ngược lại với any(). Kết quả trả về True khi và chỉ khi tất cả các phần tử thỏa mãn điều kiện được đưa ra:

list_numbers = [0, 5, 15]
all(i > 0 and i < 10 for i in list_numbers)

# False

015 không thỏa mãn điều kiện nên hàm all() trả về False .

7. Merge hai hay nhiều lists

Ta có list_a = [1,2,3]list_b = [4,5,6] Để không phải xử lý cồng kềnh như:

for i in list_b:
    list_a.append(i)

thì chúng ta có một cách ngắn hơn đó là:

list = list_a + list_b

8. Hoán đổi giá trị của hai biến không sử dụng biến trung gian

Đây là một bài toán rất hay mà mình đã đọc được. Giả sử ta có a = 4, b = 5. Thông thường, ta sẽ hoán đổi như sau:

a = a + b # a = 9
b = a - b # b = 4
a = a - b # a = 5

Đó là trong trường hợp biến a,b đều là số nguyên. Còn trong trường hợp a và b là một kiểu dữ liệu khác như string thì sao. Rất hay là Python giúp chúng ta làm điều đó bằng một dòng đơn giản:

a, b = b, a

9. Lấy giá trị của dict dựa vào key

Chúng ta vẫn có thói quen lấy giá trị trong dict dựa vào key như:

var = dict['key']

Nhưng trong dict của chúng ta không tồn tại key đó thì sẽ bị tạch luôn ở case này. (yaoming) Để chắc chắn hơn, chúng ta sử dụng

var = dict.get('key')

Trong trường hợp không tồn tại key đó cũng ko sao var của chúng ta không có bất kỳ giá trị nào cả.

Trên đây là những thứ mình đã học được khi code Python. Mong các bạn ủn mông để mình có thể cho ra đời những phần tiếp theo của series bài viết về Tips và Tricks trong python.


All Rights Reserved