Công cụ sau đây trực quan hóa những gì máy tính đang làm từng bước khi nó thực thi chương trình nói trên
Trình chỉnh sửa mã Python
Có một cách khác để giải quyết giải pháp này?
Trước. Viết chương trình Python để kiểm tra xem phần tử thứ n có tồn tại trong danh sách đã cho không
Kế tiếp. Viết chương trình Python để tạo danh sách từ điển trống
Mức độ khó của bài tập này là gì?
Dễ dàng trung bình khóKiểm tra kỹ năng Lập trình của bạn với bài kiểm tra của w3resource
Theo dõi chúng tôi trên Facebook và Twitter để cập nhật thông tin mới nhất.
con trăn. Lời khuyên trong ngày
Lát
Các lát là các đối tượng để chúng có thể được lưu trữ trong các biến. Một số cấu trúc dữ liệu cho phép lập chỉ mục và cắt, chẳng hạn như danh sách, chuỗi và bộ dữ liệu
Chúng ta có thể sử dụng số nguyên để xác định giới hạn trên và dưới của lát cắt hoặc sử dụng một đối tượng lát cắt
đầu ra
['r', 11, 16] sour (10, 12, 14)Lát s đại diện cho một lát từ phần tử thứ tư đến phần tử thứ sáu. Chúng tôi áp dụng cùng một đối tượng lát cắt cho một danh sách, chuỗi và bộ dữ liệu
Một danh sách python có thể chứa các bộ như các phần tử của nó. Trong bài viết này, chúng ta sẽ khám phá cách truy cập mọi phần tử thứ n tạo thành các bộ dữ liệu có mặt dưới dạng các phần tử trong bộ dữ liệu đã cho
Sử dụng chỉ mục
Chúng ta có thể thiết kế một vòng lặp for để truy cập các phần tử từ danh sách với mệnh đề in được áp dụng cho chỉ mục thứ n. Sau đó, chúng tôi lưu trữ kết quả vào một danh sách mới
Thí dụ
Bản thử trực tiếp
Alist = [('Mon','3 pm',10),('Tue','12pm',8),('Wed','9 am',8),('Thu','6 am',5)] #Given list print("Given list: ",Alist) # Use index res = [x[1] for x in Alist] print("The 1 st element form each tuple in the list: \n",res)đầu ra
Chạy đoạn mã trên cho chúng ta kết quả sau -
Given list: [('Mon', '3 pm', 10), ('Tue', '12pm', 8), ('Wed', '9 am', 8), ('Thu', '6 am', 5)] The 1 st element form each tuple in the list: ['3 pm', '12pm', '9 am', '6 am']Sử dụng vật phẩm
Hàm itegetter từ mô-đun toán tử có thể tìm nạp từng mục từ một lần lặp đã cho cho đến khi kết thúc lần lặp được tìm kiếm. Trong chương trình này, chúng tôi tìm kiếm vị trí chỉ mục 2 từ danh sách đã cho và áp dụng hàm bản đồ để áp dụng lặp lại cùng một hàm cho từng kết quả từ kết quả của hàm itemgetter. Cuối cùng, chúng tôi lưu trữ kết quả dưới dạng danh sách
BridgeTech là một công ty phục hồi cầu. Họ đã yêu cầu bạn sắp xếp và trả về 10 nguyên tố hàng đầu từ Bảng tuần hoàn dựa trên 'Bán kính nguyên tử' theo thứ tự giảm dần
Bán kính nguyên tử của một nguyên tố hóa học là thước đo kích thước nguyên tử của nó, thường là khoảng cách trung bình hoặc điển hình từ tâm hạt nhân đến electron bị cô lập ngoài cùng
Nhấn vào đây để tải về Bảng tuần hoàn. Lưu tệp này với tên periodic_table.csv và di chuyển nó vào thư mục làm việc hiện tại
💬 câu hỏi. Bạn sẽ viết mã Python như thế nào để hoàn thành nhiệm vụ này?
Chúng ta có thể hoàn thành nhiệm vụ này bằng một trong các tùy chọn sau
- Phương pháp 1. Sử dụng sort() và lambda
- Phương pháp 2. Sử dụng sort() và import numpy as np from operator import itemgetter0
- Phương pháp 3. Sử dụng import numpy as np from operator import itemgetter1 và lambda
- Phương pháp 4. Sử dụng Sắp xếp bong bóng
Sự chuẩn bị
Trước khi bất kỳ thao tác dữ liệu nào có thể xảy ra, một (1) thư viện mới sẽ yêu cầu cài đặt
- Thư viện Pandas cho phép truy cập vào/từ DataFrame
Để cài đặt thư viện này, hãy điều hướng đến một thiết bị đầu cuối IDE. Tại dấu nhắc lệnh (import numpy as np from operator import itemgetter3), hãy thực thi mã bên dưới. Đối với thiết bị đầu cuối được sử dụng trong ví dụ này, dấu nhắc lệnh là ký hiệu đô la (import numpy as np from operator import itemgetter3). Lời nhắc thiết bị đầu cuối của bạn có thể khác
________số 8_______Nhấn phím import numpy as np from operator import itemgetter5 trên bàn phím để bắt đầu quá trình cài đặt
Nếu quá trình cài đặt thành công, một thông báo sẽ hiển thị trong thiết bị đầu cuối cho biết điều tương tự
Vui lòng xem hướng dẫn cài đặt PyCharm để biết thư viện cần thiết
- Cách cài đặt Pandas trên PyCharm
Thêm đoạn mã sau vào đầu mỗi đoạn mã. Đoạn mã này sẽ cho phép mã trong bài viết này chạy không có lỗi
import numpy as np from operator import itemgetter💡 Lưu ý. Thư viện import numpy as np from operator import itemgetter6 được tích hợp sẵn trong Python và không cần cài đặt
Phương pháp 1. Sử dụng Sắp xếp và Lambda
Để sắp xếp danh sách các bộ dữ liệu dựa trên phần tử thứ hai, hãy sử dụng _________ 46 _______ và _______ 47 _______ trong biểu thức một dòng import numpy as np from operator import itemgetter9
Đây là một ví dụ
df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups.sort(key=lambda x: x[1], reverse=True) print(tups[0:10])Tệp CSV được đọc trong quá trình chuẩn bị và hai (2) cột được lưu vào DataFrame. DataFrame sau đó chuyển đổi thành một danh sách các bộ dữ liệu (_______13_______0) bằng cách sử dụng tính năng Hiểu danh sách
Chúng tôi đã sẵn sàng để sắp xếp
Một lambda được truyền dưới dạng tham số cho sort() cho biết phần tử sắp xếp (df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups.sort(key=lambda x: x[1], reverse=True) print(tups[0:10])3) và thứ tự sắp xếp được đặt thành giảm dần (df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups.sort(key=lambda x: x[1], reverse=True) print(tups[0:10])4). Lưu kết quả vào df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups.sort(key=lambda x: x[1], reverse=True) print(tups[0:10])0
Để hoàn tất quy trình, quá trình cắt được thực hiện và 10 phần tử hàng đầu được gửi đến thiết bị đầu cuối
đầu ra
df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups.sort(key=lambda x: x[1], reverse=True) print(tups[0:10])6Phương pháp 2. Sử dụng Sort & Itemgetter
Để sắp xếp một danh sách các bộ dữ liệu theo phần tử thứ hai, hãy sử dụng các hàm sort() và import numpy as np from operator import itemgetter0 trong biểu thức df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups.sort(key=lambda x: x[1], reverse=True) print(tups[0:10])9
Đây là một ví dụ
df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups.sort(key=itemgetter(1), reverse=True) print(tups[0:10])Tệp CSV được đọc trong quá trình chuẩn bị và hai (2) cột được lưu vào DataFrame. Sau đó, DataFrame chuyển đổi thành Danh sách các bộ dữ liệu (_______13_______0) bằng cách sử dụng tính năng Hiểu danh sách
Chúng tôi đã sẵn sàng để sắp xếp
Hàm sort() chuyển một khóa (df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups.sort(key=itemgetter(1), reverse=True) print(tups[0:10])2) trong đó df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups.sort(key=itemgetter(1), reverse=True) print(tups[0:10])3 là phần tử sắp xếp df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups.sort(key=itemgetter(1), reverse=True) print(tups[0:10])4) và thứ tự sắp xếp được đặt thành giảm dần (df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups.sort(key=lambda x: x[1], reverse=True) print(tups[0:10])4)
Lưu kết quả vào df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups.sort(key=lambda x: x[1], reverse=True) print(tups[0:10])0
Để hoàn tất quy trình, quá trình cắt được thực hiện và 10 phần tử hàng đầu được gửi đến thiết bị đầu cuối
💡 Lưu ý. Hàm import numpy as np from operator import itemgetter0 nhanh hơn một chút so với hàm lambda. Sử dụng df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups.sort(key=itemgetter(1), reverse=True) print(tups[0:10])9 nếu tốc độ và bộ nhớ là một yếu tố
Phương pháp 3. Sử dụng Sắp xếp và Lambda
Để sắp xếp danh sách các bộ dữ liệu theo phần tử thứ hai, hãy kết hợp các hàm df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups = sorted(tups, key=lambda x:(x[1]), reverse=True) print(tups[0:10])0 và lambda trong biểu thức df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups = sorted(tups, key=lambda x:(x[1]), reverse=True) print(tups[0:10])2 và gán danh sách đã sắp xếp cho biến ban đầu df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups.sort(key=lambda x: x[1], reverse=True) print(tups[0:10])0
Đây là một ví dụ
df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups = sorted(tups, key=lambda x:(x[1]), reverse=True) print(tups[0:10])Tệp CSV được đọc trong quá trình chuẩn bị và hai (2) cột được lưu vào DataFrame. Sau đó, DataFrame chuyển đổi thành Danh sách các bộ dữ liệu (_______13_______0) bằng cách sử dụng tính năng Hiểu danh sách
Chúng tôi đã sẵn sàng để sắp xếp
Một df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups = sorted(tups, key=lambda x:(x[1]), reverse=True) print(tups[0:10])5 được truyền dưới dạng tham số cho df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups = sorted(tups, key=lambda x:(x[1]), reverse=True) print(tups[0:10])0, cho biết phần tử sắp xếp (df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups.sort(key=lambda x: x[1], reverse=True) print(tups[0:10])3) và thứ tự sắp xếp được đặt thành giảm dần (df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups.sort(key=lambda x: x[1], reverse=True) print(tups[0:10])4). Lưu kết quả vào df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups.sort(key=lambda x: x[1], reverse=True) print(tups[0:10])0
Để hoàn tất quy trình, quá trình cắt được thực hiện và 10 phần tử hàng đầu được gửi đến thiết bị đầu cuối
Phương pháp 4. Sử dụng Sắp xếp bong bóng
Để sắp xếp Danh sách các bộ dữ liệu theo phần tử thứ hai, bạn cũng có thể sửa đổi thuật toán sắp xếp từ đầu, chẳng hạn như Sắp xếp bong bóng để truy cập giá trị bộ dữ liệu thứ hai (hoặc thứ n) làm cơ sở để sắp xếp
Đây là một ví dụ
df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] def sort_tuples_desc(tups, idx): length = len(tups) for i in range(0, length): for j in range(0, length-i-1): if (tups[j][idx] < tups[j + 1][idx]): tmp = tups[j] tups[j] = tups[j+1] tups[j+1] = tmp return tups print(sort_tuples_desc(tups, 1)[0:10])Tệp CSV được đọc trong quá trình chuẩn bị và hai (2) cột được lưu vào DataFrame. Sau đó, DataFrame chuyển đổi thành Danh sách các bộ dữ liệu (_______13_______0) bằng cách sử dụng tính năng Hiểu danh sách
Chúng tôi đã sẵn sàng để sắp xếp
Hàm sắp xếp df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] def sort_tuples_desc(tups, idx): length = len(tups) for i in range(0, length): for j in range(0, length-i-1): if (tups[j][idx] < tups[j + 1][idx]): tmp = tups[j] tups[j] = tups[j+1] tups[j+1] = tmp return tups print(sort_tuples_desc(tups, 1)[0:10])1 được tạo và truyền hai (2) tham số. Danh sách các bộ dữ liệu (df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] tups.sort(key=lambda x: x[1], reverse=True) print(tups[0:10])0) và phần tử sắp xếp (df = pd.read_csv('periodic_table.csv', usecols=['Name', 'AtomicRadius']) tups = [tuple(x) for x in df.values.tolist()] def sort_tuples_desc(tups, idx): length = len(tups) for i in range(0, length): for j in range(0, length-i-1): if (tups[j][idx] < tups[j + 1][idx]): tmp = tups[j] tups[j] = tups[j+1] tups[j+1] = tmp return tups print(sort_tuples_desc(tups, 1)[0:10])3). Sau đó, Sắp xếp bong bóng khét tiếng được thực hiện trên các phần tử
Sắp xếp bong bóng với điệu múa dân gian Hungary ("Csángó")
Xem video này trên YouTube
Hàm này trả về một Danh sách các Tuple được sắp xếp theo thứ tự giảm dần
Để hoàn tất quy trình, quá trình cắt được thực hiện và 10 phần tử hàng đầu được gửi đến thiết bị đầu cuối
Tóm lược
Bốn (4) phương pháp sắp xếp Danh sách các bộ dữ liệu dựa trên phần tử thứ hai này sẽ cung cấp cho bạn đủ thông tin để chọn phương pháp tốt nhất cho các yêu cầu viết mã của bạn