Khởi tạo danh sách trong Python
– Mảng là tập hợp các phần tử cùng một kiểu dữ liệu duy nhất như: mảng số nguyên, mảng số thực, mảng xâu,… Nhưng trong Python không có kiểu dữ liệu mảng mà sử dụng kiểu danh sách (list). Show – Không giống như mảng, danh sách có thể chứa các phần tử khác kiểu nhau. – Chỉ số của mảng bắt đầu từ 0 đến số phần tử – 1 2. Thao tác với dữ liệu kiểu lista. Khởi tạo lista.1. Dạng liệt kê: Ví dụ: s1 = “” #Tạo xâu rỗng s1 s2 = “Viet Nam” #Tạo xâu s2 có s2[0] = “V”, s2[1] = “i”, …., s2[7] = “m” #Duyệt qua từng phần tử của xâu: s = “Ha Noi Viet Nam” for i in s: print(i,end=“ “) #Xuất ra màn hình dòng chữ: H a N o i V i e t N a mLưu ý: – Hàm len( – Phép toán: + Nối mảng: + Nhân bản phần tử: a.2. Dạng mô tả (list comprehension): [ Lưu ý: Ví dụ: #1 a = [2, 3, 5, 7] #Tạo mảng a gồm 4 phần tử và a[0] = 2, a[1] = 3, a[2] = 5, a[3] = 7 b = [x**2 for x in a] #Tạo mảng b gồm 4 phần tử, b[0] = 4, b[1] = 9, b[2] = 25, b[3] = 49 #2 s = “2 3 5 8 10” c = [int(x) for x in s.split()] #Tạo mảng c gồm 5 phần tử, có giá trị là 2, 3, 5, 8, 10 #3 d = [x for x in range(0,11,2)] #Tạo mảng d gồm 6 phần tử, có giá trị lần lượt là 0, 2, 4, 6, 8, 10 #4 s = "12345" e = [int(x) for x in s] #Tạo mảng gồm 5 phần tử, có giá trị lần lượt là 1, 2, 3, 4, 5 #5 s = “2 3 5 8 10” d = list(map(int,s.split())) #Tạo mảng d gồm 5 phần tử, có giá trị là 2, 3, 5, 8, 10Ngoài ra, ta có phương pháp sinh có điều kiện như sau: [ Ví dụ: #1 d = [x for x in range(0,11) if x%2==0] #Tạo mảng d gồm 6 phần tử, có giá trị lần lượt là 0, 2, 4, 6, 8, 10 #2 s = ‘Xin chao 123’ a = [int(ch) for ch in s if ord(ch)>=48 and ord(ch)<=57 #Tạo mảng số nguyên a gồm 3 phần tử, các phần tử là các số trong xâu sb. Nhập dữ liệu từ bàn phím vào lista.1. Dạng nhập từng phần tử (thường biết trước số phần tử của mảng) Ví dụ: Nhập dữ liệu vào mảng số nguyên a gồm có n phần tử từ bàn phím n = int(input(“Mời nhập số phần tử: “)); #Nhập số phần tử của mảng a = [] #Khởi tạo mảng rỗng for i in range(0,n): print(“Phần tử thứ”,i+1,”là:”,end=“ “) #Xuất dòng thông báo temp = int(input()) #Lấy giá trị nhập vào và chuyển sang kiểu số nguyên a.append(temp) #Thêm phần tử vào vị trí cuối cùng của mảnga.2. Dạng nhập toàn bộ phần tử của mảng (thường chưa biết trước số phần tử của mảng) Ví dụ: Nhập dữ liệu vào mảng số nguyên a từ bàn phím (các số cách nhau dấu cách) a = list(map(int,input(“Mời nhập các phần tử của mảng: ”).split())) c. Một số phương thức của list
3. Tìm hiểu kiểu dữ liệu list of list– Mảng nhiều chiều là mảng mà mỗi phần tử của nó có kiểu mảng – Cách tham chiếu đến từng phần tử của mảng 2 chiều (list of list) như sau: a[i][j] à Tham chiếu phần tử có chỉ số i và j Trong đó i là chỉ số phần tử của mảng a và j là chỉ số phần tử của mảng a[i] 4. Thao tác với dữ liệu kiểu list of list– Duyệt từng phần tử của list of list: Ví dụ: Duyệt qua từng phần tử của mảng a gồm n phần tử, mỗi phần tử là mảng gồm m phần tử for i in range(0,n): for j in range(0,m):5. Phần bài tập về kiểu dữ liệu danh sách (list)Câu 1: Viết chương trình nhập vào dãy các số nguyên bất kỳ, xuất ra màn hình tổng của các số trong dãy đó? Câu 2: Viết chương trình nhập vào dãy các số bất kỳ, tìm số lớn nhất trong dãy số đó và xuất ra màn hình? Câu 3: Viết chương trình nhập vào mảng gồm n số nguyên dương, hãy xuất ra màn hình tổng của các số lẻ trong mảng đó, với n>2 Câu 4: Viết chương trình nhập vào số nguyên dương n, xuất ra màn hình các số nguyên tố nhỏ hơn n, với n>2 Câu 5: Viết chương trình nhập vào bàn phím số nguyên dương n, xuất ra màn hình dãy số Fibonaxi. Biết rằng dãy Fibonaxi có dạng như sau: F0 = 1, F1 = 1, Fn = Fn-1 + Fn-2 với n>1 Câu 6: Viết chương trình dung phương pháp list comprehension để tạo các list sau: a) Dãy các số là bội của 3 và nhỏ hơn 100 b) Dãy 10 số chính phương đầu tiên Câu 7: Viết chương trình nhập vào dãy các số nguyên bất kỳ, kiểm tra và xuất ra màn hình xem dãy số đó có tạo thành cấp số cộng hay không? Bài 8: Viết chương trình nhập vào danh sách gồm n người, mỗi người sẽ có các thông tin như: họ và tên, tuổi, giới tính và quê quán. Sau đó xuất ra màn hình thông tin của từng người đã nhập. Câu 9: Viết chương trình nhập vào 2 ma trận vuông 5×5 và xuất ra màn hình ma trận tổng của hai ma trận đã nhập? Xem tiếp Bài 7 – Kiểu dữ liệu từ điển (dict) trong ngôn ngữ lập trình Python
Là một website được viết trên công nghệ web Flutter vì vậy hỗ trợ rất tốt cho người học, kể cả những người học khó tính nhất. Hiện tại website đang tiếp tục được cập nhập nội dung cho phong phú và đầy đủ hơn. Mong các bạn nghé thăm và ủng hộ website mới của chúng tôi.
Trong Python, List là một kiểu dữ liệu linh hoạt nhất. Nó là dẫy (sequence) phần tử (element), nó cho phép loại bỏ, hoặc thêm các phần tử vào danh sách, đồng thời cho phép cắt lát (Slice) các phần tử. Để viết một danh sách, bạn đặt các phần tử nằm trong cặp ngoặc vuông [ ] và ngăn cách nhau bởi dấu phẩy. Các phần tử trong danh sách được đánh chỉ số (index) từ trái sang phải bắt đầu từ chỉ số 0. fruitList = ["apple", "apricot", "banana","coconut", "lemen"] otherList = [100, "one", "two", 3] print ("Fruit List:") print (fruitList) print (" --------------------------- ") print ("Other List:") print (otherList) Fruit List: ['apple', 'apricot', 'banana', 'coconut', 'lemen'] --------------------------- Other List: [100, 'one', 'two', 3] Sử dụng vòng lặp for để truy cập vào các phần tử của danh sách: fruitList = ["apple", "apricot", "banana", "coconut", "lemen", "plum", "pear"] for fruit in fruitList : print ("Fruit: ", fruit) Fruit: apple Fruit: apricot Fruit: banana Fruit: coconut Fruit: lemen Fruit: plum Fruit: pear Truy cập thông qua chỉ số (index): Bạn cũng có thể truy cập vào các phần tử của list thông qua chỉ số. Các phần tử của list được đánh chỉ số từ trái sang phải, bắt đầu từ 0. fruitList = ["apple", "apricot", "banana", "coconut", "lemen", "plum", "pear"] print ( fruitList ) # Số phần tử. print ("Element count: ", len(fruitList) ) for i in range (0, len(fruitList) ) : print ("Element at ", i, "= ", fruitList[i] ) # Một danh sách con chứa các phần tử từ index 1 đến 4 (1, 2, 3) subList = fruitList[1: 4] # ['apricot', 'banana', 'coconut'] print ("Sub List [1:4] ", subList ) ['apple', 'apricot', 'banana', 'coconut', 'lemen', 'plum', 'pear'] Element count: 7 Element at 0 = apple Element at 1 = apricot Element at 2 = banana Element at 3 = coconut Element at 4 = lemen Element at 5 = plum Element at 6 = pear Sub List [1:4] ['apricot', 'banana', 'coconut'] Bạn cũng có thể truy cập vào các phần tử của danh sách theo chỉ số âm (Negative index), các phần tử được đánh chỉ số từ phải sang trái với các giá trị -1, -2, ... fruitList = ["apple", "apricot", "banana", "coconut", "lemen", "plum", "pear"] print ( fruitList ) print ("Element count: ", len(fruitList) ) print ("fruitList[-1]: ", fruitList[-1]) print ("fruitList[-2]: ", fruitList[-2]) subList1 = fruitList[-4: ] print ("\n") print ("Sub List fruitList[-4: ] ") print (subList1) subList2 = fruitList[-4:-2] print ("\n") print ("Sub List fruitList[-4:-2] ") print (subList2) ['apple', 'apricot', 'banana', 'coconut', 'lemen', 'plum', 'pear'] Element count: 7 fruitList[-1]: pear fruitList[-2]: plum Sub List fruitList[-4: ] ['coconut', 'lemen', 'plum', 'pear'] Sub List fruitList[-4:-2] ['coconut', 'lemen'] Ví dụ dưới đây là cách cập nhật List theo chỉ số (index): years = [1991,1995, 1992] print ("Years: ", years) print ("Set years[1] = 2000") years[1] = 2000 print ("Years: ", years) print ( years ) print ("Append element 2015, 2016 to list") # Nối (append) thêm một phần tử vào cuối danh sách. years.append( 2015 ) years.append( 2016 ) print ("Years: ", years) Years: [1991, 1995, 1992] Set years[1] = 2000 Years: [1991, 2000, 1992] [1991, 2000, 1992] Append element 2015, 2016 to list Years: [1991, 2000, 1992, 2015, 2016] Bạn cũng có thể cập nhập giá trị cho một lát (Slice) các phần tử. Đây là cách để bạn cập nhập nhiều phần tử một lúc.
years = [ 1990 , 1991 , 1992 , 1993 , 1994 , 1995 , 1996 ] print ("Years: ", years) print ("Update Slice: years[1:5] = [2000, 2001]") years[1:5] = [ 2000 , 2001 ] print ("Years: ", years) Years: [1990, 1991, 1992, 1993, 1994, 1995, 1996] Update Slice: years[1:5] = [2000, 2001] Years: [1990, 2000, 2001, 1995, 1996] Để xóa một hoặc nhiều phần tử trong một danh sách (list) bạn có thể sử dụng lệnh del (del statement), hoặc sử dụng phương thức remove(). Ví dụ dưới đây sử dụng lệnh del để xóa một hoặc nhiều phần tử theo chỉ số. years = [ 1990 , 1991 , 1992 , 1993 , 1994 , 1995 , 1996 ] print ("Years: ", years) print ("\n del years[6]") # Xóa phần tử tại vị trí có index = 6. del years[6] print ("Years: ", years) print ("\n del years[1:4]") # Xóa phần tử tại index = 1,2,3 del years[1:4] print ("Years: ", years) Years: [1990, 1991, 1992, 1993, 1994, 1995, 1996] del years[6] Years: [1990, 1991, 1992, 1993, 1994, 1995] del years[1:4] Years: [1990, 1994, 1995] Phương thức remove(value) loại bỏ phần tử đầu tiên trong danh sách có giá trị bằng với giá trị của tham số. Phương thức này có thể ném ra ngoại lệ (throw exception) nếu không tìm thấy phần tử nào để loại bỏ. years = [ 1990 , 1991 , 1992 , 1993 , 1994 , 1993 , 1993 ] print ("Years: ", years) print ("\n years.remove(1993)") # Loại bỏ phần tử đầu tiên có giá trị 1993 trong danh sách years.remove(1993) print ("Years: ", years) Years: [1990, 1991, 1992, 1993, 1994, 1993, 1993] years.remove(1993) Years: [1990, 1991, 1992, 1994, 1993, 1993] Cũng giống như String, List có 3 toán tử +, * , in.
list1 = [1, 2, 3] list2 = ["One", "Two"] print ("list1: ", list1) print ("list2: ", list2) print ("\n") list12 = list1 + list2 print ("list1 + list2: ", list12) list2x3 = list2 * 3 print ("list2 * 3: ", list2x3) hasThree = "Three" in list2 print ("'Three' in list2? ", hasThree) list1: [1, 2, 3] list2: ['One', 'Two'] list1 + list2: [1, 2, 3, 'One', 'Two'] list2 * 3: ['One', 'Two', 'One', 'Two', 'One', 'Two'] 'Three' in list2? False
list1 = [1991, 1994, 1992] list2 = [1991, 1994, 2000, 1992] print ("list1: ", list1) print ("list2: ", list2) # Trả về số lượng phần tử của danh sách. print ("len(list1): ", len(list1) ) print ("len(list2): ", len(list2) ) # Giá trị lớn nhất trong danh sách (list). maxValue = max(list1) print ("Max value of list1: ", maxValue) # Giá trị nhỏ nhất trong danh sách (list). minValue = min(list1) print ("Min value of list1: ", minValue) # Tuple tuple3 = (2001, 2005, 2012) print ("tuple3: ", tuple3) # Chuyển đổi một Tuple thành List. list3 = list (tuple3) print ("list3: ", list3) list1: [1991, 1994, 1992] list2: [1991, 1994, 2000, 1992] len(list1): 3 len(list2): 4 Max value of list1: 1994 Min value of list1: 1991 tuple3: (2001, 2005, 2012) list3: [2001, 2005, 2012]
years = [ 1990 , 1991 , 1992 , 1993 , 1993 , 1993 , 1994 ] print ("Years: ", years) print ("\n - Reverse the list") # Đảo ngược danh sách. years.reverse() print ("Years (After reverse): ", years) aTuple = (2001, 2002, 2003) print ("\n - Extend: ", aTuple) years.extend(aTuple) print ("Years (After extends): ", years) print ("\n - Append 3000") years.append(3000) print ("Years (After appends): ", years) print ("\n - Remove 1993") years.remove(1993) print ("Years (After remove): ", years) print ("\n - years.pop()") # Loại bỏ phần tử cuối cùng của danh sách. lastElement = years.pop() print ("last element: ", lastElement) print ("\n") # Count print ("years.count(1993): ",years.count(1993) ) Years: [1990, 1991, 1992, 1993, 1993, 1993,1994] - Reverse the list Years (After reverse): [1994, 1993, 1993, 1993, 1992, 1991, 1990] - Extend: (2001, 2002, 2003) Years (After extends): [1994, 1993, 1993, 1993, 1992, 1991, 1990, 2001, 2002, 2003] - Append 3000 Years (After appends): [1994, 1993, 1993, 1993, 1992, 1991, 1990, 2001, 2002, 2003, 3000] - Remove 1993 Years (After remove): [1994, 1993, 1993, 1992, 1991, 1990, 2001, 2002, 2003, 3000] - years.pop(2001) last element: 3000 years.count(1993): 2
|