Một số thủ thuật hay trong Python

4490

Bài viết được sự cho phép của tác giả Nguyễn Chí Thức

Copy một list

Giả dụ chúng ta có đoạn code sau:

>>> A = [1, 2, 3, 4, 5]
>>> B = A

thì nếu chúng ta in list B thì sẽ được các phần tử của list A, nhưng thực ra B chỉ là một biến tham chiếu đến A trong bộ nhớ, tức là thực chất trong bộ nhớ chỉ có 1 list [1, 2, 3, 4, 5] và cả A và B cùng trỏ đến list đó chứ không phải A và B có 2 list giống nhau.

  71 trích đoạn code Python cho các vấn đề hàng ngày của bạn
  Bỏ túi cheatsheet dành cho Python newbie
>>> C = A[:]

Còn trong dòng code trên thì chúng ta mới thực sự tạo ra một list khác là C có các phần tử giống như list A.

Bây giờ chúng ta thử đổi một phần tử trong list A:

>>> A[0] = 8
>>> A
>>> [8, 2, 3, 4, 5]
>>> B
>>> [8, 2, 3, 4, 5]
>>> C
>>> [1, 2, 3, 4, 5]

Rõ ràng khi in list A và B đều cho kết quả giống nhau vì chúng cùng tham chiếu tới một list, nhưng C thì lại khác vì các phần tử trong list C tồn tại độc lập.

Việc làm python các công ty lớn

Khởi tạo giá trị mặc định cho đối tượng Dictionary

Các đối tượng Dictionary được tạo ra là rỗng. Nhiều khi chúng ta làm việc với Dictionary mà không biết khóa đó có giá trị hay chưa nên truy xuất giá trị sẽ bị lỗi, do đó chúng ta có thể dùng phương thức get() rồi truyền thêm giá trị mặc định vào, tức là nếu khóa đó không có giá trị thì Python sẽ gán giá trị mặc định vào luôn.

>>> D = dict()
>>>> D['cat'] += 1
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'cat'
>>> D['cat'] = D.get('cat', 0) + 1
>>> D['cat']
1
>>> D['cat'] = D.get('cat', 0) + 1
>>> D['cat'] = D.get('cat', 0) + 1
>>> D['cat'] = D.get('cat', 0) + 1
>>> D['cat'] = D.get('cat', 0) + 1
>>> D['cat']
5
>>> D['dog'] = D.get('dog', 0) + 1
>>> D['dog'] = D.get('dog', 0) + 1
>>> D['dog'] = D.get('dog', 0) + 1
>>> D['dog']
3
>>> D
{'dog': 3, 'cat': 5}

Gán nhiều giá trị cùng một lúc

Bạn có thể gán một lúc nhiều giá trị vào nhiều biến. Tính năng này đặc biệt hữu ích cho việc hoán đổi giá trị giữa 2 phần tử. Với Python bạn không cần phải khai báo biến tạm như temp = a; a = b; b = temp; để thực hiện công việc hoán đổi giá trị nữa.

>>> x, y = 1, 2 #multiple assignment
>>> x
1
>>> y
2 
>>> x, y = y, x #swapping
>>> x
2
>>> y
1

>>> Xem thêm: Python cơ bản cho ứng dụng trong công việc

Có thể gọi bất cứ thứ gì

Chúng ta có thể hầu như gọi bất cứ thứ gì một cách ngẫu nhiên nhưng thường thì cũng không nên làm như vậy vì sẽ rất khó kiểm soát.

>>> number = '123'
>>> number*2
'123123'
>>> # hmmm ...
...
>>> int(number) * 2
246
>>> i = int
>>> i(number) * 2
246

Đặt tên biến Unicode

Để có thể sử dụng tên Unicode thì chúng ta viết code trong file script là lưu lại với định dạng UTF-8.

>>> biến = 1
>>> print(biến)

Truyện tranh Python

Bạn có thể import antigravity để… mở một trang truyện tranh về Python trên trình duyệt

import antigravity

python

Cú pháp for…else

Ví dụ:

for i in foo:
    if i == 0:
        break
else:
    print("Hello world!")

Cú pháp điều kiện

Thay vì dùng câu lệnh if..else như thường chúng ta có thể dùng nhanh cú pháp sau đây:

>>> x = 3 if(y == 1) else 2

Dòng trên có nghĩa là nếu y = 1 thì gán x = 3, ngược lại thì gán x = 2. Cú pháp này giống như toán tử ?: trong C++, Java… vậy.

Đảo Ngược Chuỗi

Thao tác đảo ngược một chuỗi trong Python có thể được thực hiện thông qua sử dụng kỹ thuật đơn giản sau:

site_domain =  "codehub.vn"
print site_domain[::-1]

Không có gì là phức tạp phải không nào.

Gán Giá Trị Cho Nhiều Biến Từ Phần Tử Trong Danh Sách

Giả sử chúng ta có một biến my_numbers với giá trị thuộc kiểu dữu liệu danh sách và gồm có 3 phần tử như sau:

my_numbers = [1,2,3]

Bây giờ để gán giá trị cho 3 biến mới lấy từ 3 phần tử của danh sách trên chúng ta làm như sau:

my_numbers = [1, 2, 3]
first, second, third = my_numbers

Bây giờ 3 biến first, second và third lúc này nhận 3 giá trị tương ứng là 1, 2 và 3.

Nối Các Phần Tử Trong Danh Sách Để Tạo Chuỗi

Giả sử chúng ta có biến my_list với kiểu dữ liệu danh sách như sau:

my_list = ["CodeHub.vn", "Learn", "Code", "Everyday"]

Để nối các phần tử trong chuỗi này bạn có thể làm như sau:

print " ".join(my_list)

Kết quả hiển thị của đoạn câu lệnh trên:

CodeHub.vn Learn Code Everyday

>>> Xem thêm: Tuyển tập chuẩn “sách giáo khoa” Python

“Zip” Phần Tử Của Hai Hay Nhiều Danh Sách

Giả sử bạn có hai danh sách như sau:

my_numbers = ['1', '2', '3']
my_numbers_in_english = ['first', 'second', 'third']

Và bạn được yêu cầu viết một đoạn code Python để hiển thị kết quả như sau:

1 first
2 second
3 third

Thì lúc này bạn có thể sử dụng hàm zip:

for a, b in zip(my_numbers, my_numbers_in_english):
    print a, b

Rất hữu ích phải không nào, chúng ta nhận được kết quả như ý muốn với số lượng đoạn code tối thiểu phải viết điểu này không phải lúc nào cũng dễ dàng với các ngôn ngữ script khác.

Chúc các bạn học tập tốt.

Bài viết gốc được đăng tải tại ucode.vn

Có thể bạn quan tâm:

Xem thêm các việc làm it nhiều ngành nghề hấp dẫn tại TopDev