Viết chương trình Python để chuyển đổi các phần tử trong list thành một số tự nhiên

Bài viết được sự cho phép của tác giả Nguyen Chi Thuc

Đoạn mã sau đảo ngược một chuỗi bằng cách sử dụng thao tác cắt [slicing] trong Python.

my_string = "ABCDE" reversed_string = my_string[::-1] print[reversed_string]

Đoạn code sau có thể được sử dụng để chuyển đổi một chuỗi thành trường chuỗi mới được viết HOA ký tự đầu tiên của mỗi từ.

Tìm việc python các công ty tập đoàn

  11 tip học Python dành cho các “newbie”

  20 tài liệu học Python thiết thực để trở thành lập trình viên chuyên nghiệp

Điều này được thực hiện bằng cách sử dụng phương thức title[] của string class.

my_string = "đây là một chuỗi" new_string = my_string.title[] print[new_string]

Đoạn code sau có thể được sử dụng để tìm tất cả các phần tử duy nhất trong một chuỗi.

Chúng ta sử dụng tính chất của kiểu dữ liệu set: Tất cả các phần tử trong set là duy nhất.

my_string = "aavvccccddddeee" temp_set = set[my_string] new_string = ''.join[temp_set] print[new_string]

Bạn có thể sử dụng phép nhân [*] với chuỗi hoặc List. Điều này cho phép chúng ta nhân chúng bao nhiêu lần tùy thích.

n = 3 my_string = "abcd" my_list = [1,2,3] print[my_string*n] print[my_list*n]

Một trường hợp sử dụng thú vị của điều này có thể là để xác định một list với các giá trị không đổi – hãy thử xem:

n = 4 my_list = [0]*n

List comprehension cung cấp cho chúng ta một cách đơn giản, thanh lịch để tạo list dựa trên các list khác.

Đoạn code sau tạo một list mới bằng cách nhân từng phần tử của list cũ với 2.

original_list = [1,2,3,4] new_list = [2*x for x in original_list] print[new_list]

Python làm cho việc hoán đổi giá trị giữa 2 biến khá đơn giản mà không cần sử dụng một biến trung gian khác.

a = 1 b = 2 a, b = b, a print[a] print[b]

Chúng ta có thể tách một chuỗi thành một list chứa các chuỗi con bằng phương thức .split[].

Bạn cũng có thể truyền một đối số [dấu phân cách] để hướng dẫn tách chuỗi theo chỉ định của bạn.

string_1 = "Tên tôi là NIIT Hà Nội" string_2 = "chuỗi 1/ chuỗi 2" print[string_1.split[]] print[string_2.split['/']]

Ngược lại ở ví dụ trên, chúng ta có danh sách các chuỗi. Bây giờ ghép chúng lại thành một chuỗi duy nhất.

Chúng ta sẽ sử dụng phương thức join[].

Trong trường hợp này, chúng ta truyền đối số [dấu phân tách] để hướng dẫn ghép chuỗi. [Mình sẽ sử dụng dấu phảy]

list_of_strings = ['Tên', 'tôi', 'là', 'NIIT', 'Hà', 'Nội'] print[','.join[list_of_strings]]

Vì chúng ta đã biết cách đảo ngược chuỗi nên việc kiểm tra một chuỗi có phải chuỗi đối xứng hay không sẽ rất đơn giản.

my_string = "abcba" if my_string == my_string[::-1]: print["Chuỗi đối xứng"] else: print["Chuỗi không đối xứng"]

Có nhiều cách để làm điều này, nhưng mình thích sử dụng Counter của Python.

Bộ đếm Python theo dõi tần suất của từng phần tử trong container.

Counter[] trả về một dictionary với các phần tử là key và số lần xuất hiện là value.

Chúng tôi cũng sử dụng hàm most_common[] để lấy phần tử most_frequent [xuất hiện nhiều nhất] trong List.

from collections import Counter my_list = ['a','a','b','b','b','c','d','d','d','d','d'] count = Counter[my_list] print[count] print[count['b']] print[count.most_common[1]]

Một ứng dụng thú vị của Counter là tìm chuỗi đảo chữ.

Đảo chữ là một từ hoặc cụm từ được hình thành bằng cách sắp xếp lại các chữ cái của một từ hoặc cụm từ khác nhau.

Nếu các đối tượng Counter của hai chuỗi bằng nhau, thì chúng là đảo chữ cái.

from collections import Counter str_1, str_2, str_3 = "acbde", "abced", "abcda" cnt_1, cnt_2, cnt_3 = Counter[str_1], Counter[str_2], Counter[str_3] if cnt_1 == cnt_2: print['1 và 2 Đảo chữ'] if cnt_1 == cnt_3: print['1 và 3 Đảo chữ']

Xử lý lỗi trong Python có thể được thực hiện dễ dàng bằng cách sử dụng khối try / except.

Thêm một câu lệnh else vào khối này rất hữu ích. Nó sẽ chạy khi không có ngoại lệ xảy ra trong khối try.

Nếu bạn cần chạy một cái gì đó không phân biệt ngoại lệ, hãy sử dụng finaly.

a, b = 1,0 try: print[a/b] except ZeroDivisionError: print["Chia cho số 0"] else: print["Không có ngoại lệ xảy ra"] finally: print["Luôn luôn chạy lệnh này!"]

Kịch bản sau đây sử dụng phép liệt kê [enumerate] để lặp qua các giá trị trong list cùng với các chỉ mục [index] của chúng.

my_list = ['a', 'b', 'c', 'd', 'e'] for index, value in enumerate[my_list]: print['{0}: {1}'.format[index, value]]

Đoạn code sau đây có thể được sử dụng để kiểm tra mức sử dụng bộ nhớ của một đối tượng.

import sys num = 21 print[sys.getsizeof[num]]

Trong khi ở Python 2, chúng ta đã sử dụng phương thức update[] để hợp nhất hai Dictionaries.

Nhưng Python 3.5 làm cho quá trình này đơn giản hơn nhiều.

Trong đoạn code được đưa ra dưới đây, hai Dictionaries được hợp nhất.

Lưu ý: Các value của Dictionaries thứ hai sẽ được sử dụng nếu key bị trùng với key trong Dictionaries thứ nhất.

dict_1 = {'apple': 9, 'banana': 6} dict_2 = {'banana': 4, 'orange': 8} combined_dict = {**dict_1, **dict_2} print[combined_dict]

Nếu bạn muốn giữ các giá trị của chúng, bạn có thể làm như sau:

def mergeDict[dict1, dict2]: ''' Hợp nhất dictionaries và giữ giá trị của key phổ biến trong list''' dict3 = {**dict1, **dict2} for key, value in dict3.items[]: if key in dict1 and key in dict2: dict3[key] = [value , dict1[key]] return dict3 dict3 = mergeDict[dict1, dict2] print['Dictionary 3 :'] print[dict3]

Đoạn code sau sử dụng thư viện time để dễ dàng giúp chúng ta tính thời gian thực để thực thi một đoạn code trong Python.

import time start_time = time.time[] a, b = 1,2 c = a+ b end_time = time.time[] time_taken_in_micro = [end_time- start_time]*[10**6] print[" Thời gian thực thi micro_seconds: {0} ms"].format[time_taken_in_micro]

Đôi khi bạn không chắc chắn về mức độ lồng trong list của mình và bạn chỉ muốn trải phẳng tất cả các phần tử trong đó thành một list duy nhất.

Đây là cách bạn có thể thực hiện:

from iteration_utilities import deepflatten def flatten[l]: return [item for sublist in l for item in sublist] l = [[1,2,3],[3]] print[flatten[l]] l = [[1,2,3],[4,[5],[6,7]],[8,[9,[10]]]] print[list[deepflatten[l, depth=3]]]

Đoạn mã sau tạo ra n số mẫu ngẫu nhiên từ một list nhất định bằng thư viện random.

import random my_list = ['a', 'b', 'c', 'd', 'e'] num_samples = 2 samples = random.sample[my_list,num_samples] print[samples]

Bạn cũng có thể sử dụng thư viện secrets để tạo các mẫu ngẫu nhiên để mã hóa.

Đoạn code sau sẽ chỉ hoạt động trên Python 3.

import secrets secure_random = secrets.SystemRandom[] my_list = ['a','b','c','d','e'] num_samples = 2 samples = secure_random.sample[my_list, num_samples] print[samples]

Đoạn code sau sẽ chuyển đổi một số nguyên thành một danh sách các chữ số.

num = 123456 list_of_digits = list[map[int, str[num]]] print[list_of_digits] list_of_digits = [int[x] for x in str[num]] print[list_of_digits]

Hàm trong ví dụ sau sẽ kiểm tra xem tất cả các phần tử trong list có phải là duy nhất hay không.

def unique[l]: if len[l] == len[set[l]]: print["Tất cả phần tử là duy nhất"] else: print["List có phần tử trùng lặp"] unique[[1,2,3,4]] unique[[1,1,2,3]]

Đây là một số Đoạn code Python ngắn mình thấy cực kỳ hữu ích trong công việc hàng ngày của mình.

Nếu bạn chưa hiểu lắm, Khóa học Python trên ucode.vn sẽ dạy bạn đầy đủ và chi tiết nhất để bạn hoàn toàn làm chủ Ngôn ngữ Python.

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 online hấp dẫn tại TopDev

Video liên quan

Chủ Đề