Qua bài viết này hãy tìm hiểu nhiều cách làm khác nhau để merge các list trong Python. Show Nội dung chính
List trong Python là gì?
Tìm việc python các công ty lớn Các cách khác nhau để hợp nhất danh sách – merge list:1. append – nối thêm– Phương pháp append sẽ thêm 1 item tới cuối list. l1=[1,2,3]
l2=[4,5,6]
l1.append(l2)
print (l1)
#Output:[1, 2, 3, [4, 5, 6]] 2. extend – mở rộng– Phương pháp extend sẽ mở rộng list bằng cách nối tất cả các item từ iterable. l1=[1,2,3]
l2=[4,5,6]
l1.extend(l2)
print (l1)
#Output:[1, 2, 3, 4, 5, 6] 3. concatenation – kết hợp– List cũng hỗ trợ cho concatenation operations – các toán tử kết hợp. l1=[1,2,3]
l2=[4,5,6]
l3=l1+l2
print (l3)
#Output:[1, 2, 3, 4, 5, 6] Ví dụ 2: Concatenating 2 hay nhiều hơn 2 list: l1=[1,2,3]
l2=[4,5,6]
l3=[7,8]
l4=[9,10]
l5=l1+l2+l3+l4
print (l5)
#Output:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 4. Unpacking – giải nénDấu hoa thị l1=[1,2,3]
l2=[4,5,6]
l3=[*l1,*l2]
print (l3)
#Output:[1, 2, 3, 4, 5, 6] 5. itertools.chainHãy tạo 1 iterator để trả về từng phần tử từ iterable đầu tiên cho tới hết, sau đó chuyển sang iterable tiếp theo. Nó sẽ xem các chuỗi liên tiếp như là 1 chuỗi đơn.
List cũng là iterable, nên chúng ta có thể dùng itertools.chain() để merge 2 dictionaries lại. Loại return sẽ là đối tượng itertools.chain. Chúng ta có thể convert tới 1 list bằng cách dùng constructor list(). import itertools
l1=itertools.chain([1,2,3],[4,5,6])
#Returns an iterator object
print (l1)#Output:<itertools.chain object at 0x029FE4D8>
#converting iterator object to list object
print(list(l1))#Output:[1, 2, 3, 4, 5, 6] 6. List comprehension1 list comprehension bao gồm dấu ngoặc
l1=[1,2,3]
l2=[4,5,6]
l3=[x for n in (l1,l2) for x in n]
print (l3)#Output:[1, 2, 3, 4, 5, 6] 7. for loop– for loop đầu tiên là để đi qua các list (for n in (l1,l2) l1=[1,2,3]
l2=[4,5,6]
l3=[]
for n in (l1,l2):
for x in n:
l3.append(x)
print (l3)
#Output:[1, 2, 3, 4, 5, 6] ———Cách để join tất cả các chuỗi (string) trong 1 list:
Ví dụ 1: Join tất cả các chuỗi trong list. Separator được cho là khoảng trắng (space) l1=["Welcome", "to", "python", "programming", "language"]
l2=" ".join(l1)
print (l2)
#Output:
Welcome to python programming language Ví
dụ 2: Join tất cả các chuỗi trong list. Separator được cho là l1=["1","2","3"]
l2="-".join(l1)
print (l2)
#Output:1-2-3 ———Cách để gỡ bỏ các phần tử trùng lặp trong lúc merging 2 list: Các set Python không chứa các phần tử trùng lặp. l1=[1,2,3,4,5]
l2=[1,3,5,7,9]
l3=list(set(l1+l2))
print (l3)
#Output:[1, 2, 3, 4, 5, 7, 9] ———-Cách nhanh nhất để merge các list trong Python
Return thời gian tính bằng giây bởi vì epoch như 1 số thực dấu phẩy động (a floating-point number). Epoch chính là điểm nơi thời gian bắt đầu và phụ thuộc vào nền tảng (platform dependent). Date cụ thể của epoch và việc xử lý giây nhuận cũng phụ thuộc vào nền tảng. Tính thời gian thực hiện bằng phương pháp append import time
l1=list(range(1,1000000))
l2=list(range(1000000,2000000))
start=time.time()
l1.append(l2)
print (time.time()-start)
#Output:0.0019817352294921875 Tính thời gian thực hiện để merge các list bằng cách dùng phương pháp extend import time
l1=list(range(1,1000000))
l2=list(range(1000000,2000000))
start1=time.time()
l1.extend(l2)
print (time.time()-start1)
#Output:0.00701141357421875 Tính thời gian thực hiện để join các list bằng cách dùng toán tử concatenation import time
l1=list(range(1,1000000))
l2=list(range(1000000,2000000))
start2=time.time()
l1+l2
print (time.time()-start2)
#Output:0.014112710952758789 Tính thời gian thực hiện để merge các list bằng cách dùng phương pháp giải nén – unpacking import time
l1=list(range(1,1000000))
l2=list(range(1000000,2000000))
start3=time.time()
[*l1,*l2]
print (time.time()-start3)
#Output:0.020873069763183594 Tính thời gian thực hiện để merge các list bằng cách dùng intertools.chain() import itertools
import time
l1=list(range(1,1000000))
l2=list(range(1000000,2000000))
start4=time.time()
l3=itertools.chain(l1,l2)
list(l3)
print (time.time()-start4)
#Output:0.045874595642089844 Tính thời gian thực hiện để merge các list bằng cách dùng list comprehension import time
l1=list(range(1,1000000))
l2=list(range(1000000,2000000))
start5=time.time()
l3=[x for n in (l1,l2) for x in n]
print (time.time()-start5)
#Output:0.06680965423583984 Tính thời gian thực hiện để merge các list bằng cách dùng for loop import time
l1=list(range(1,1000000))
l2=list(range(1000000,2000000))
start5=time.time()
l3=[]
for n in (l1,l2):
for x in n:
l3.append(x)
print (time.time()-start5)
#Output:0.23975229263305664 Hãy so sánh thời gian thực hiện bằng tất cả các phương pháp để merge các list: Kết luận:– Phương pháp append sẽ thêm list như 1 phần tử tới 1 list khác.
Độ dài của list sẽ được tăng lên 1 chỉ sau khi appending 1 list.
Bài viết gốc được đăng tại Medium Xem thêm tuyển dụng it lương cao hấp dẫn tại TopDev |