Cách lấy phần tử từ danh sách lồng nhau trong python

Danh sách Python là một trong những cấu trúc dữ liệu quan trọng nhất. Danh sách Python cũng có thể chứa danh sách con bên trong chính nó. Đó được gọi là danh sách lồng nhau

Trong khi làm việc với danh sách lồng nhau của python, tôi đã gặp một số tình huống. Tôi đã chia sẻ những điều đó trong bài viết này. Như cách truy cập phần tử, thay thế phần tử, đếm số lần xuất hiện của phần tử trong danh sách lồng nhau, v.v.

1. Làm cách nào để kiểm tra xem một phần tử có trong danh sách lồng nhau không?

Sử dụng hàm any()

any(elem in sub_list for sub_list in nested_list)
  • Nếu phần tử có trong danh sách lồng nhau trả về True, ngược lại trả về False

2. Làm thế nào để đảo ngược danh sách lồng nhau?

Sử dụng lập chỉ mục

Nếu chúng ta muốn đảo ngược các phần tử (

[element for element in sub_list for sub_list in nested_list]
6) trong danh sách lồng nhau, chúng ta có thể sử dụng phương pháp lập chỉ mục

[element for element in sub_list for sub_list in nested_list]
0 — Nó sẽ đảo ngược các phần tử trong danh sách lồng nhau. Nó sẽ tạo một bản sao của danh sách lồng nhau. Nó sẽ không sửa đổi danh sách ban đầu

Sử dụng [element for element in sub_list for sub_list in nested_list]1

[element for element in sub_list for sub_list in nested_list]
2 — Hàm
[element for element in sub_list for sub_list in nested_list]
1 cũng đảo ngược các phần tử trong danh sách lồng nhau và tự sửa đổi danh sách ban đầu

Làm cách nào để đảo ngược các phần tử trong danh sách con?

Giả sử muốn đảo ngược các phần tử trong

[element for element in sub_list for sub_list in nested_list]
6 thì ta phải lặp qua
[element for element in sub_list for sub_list in nested_list]
6 trong
[element for element in sub_list for sub_list in nested_list]
6 và áp dụng hàm đảo ngược cho
[element for element in sub_list for sub_list in nested_list]
6 đó

3. Làm thế nào để làm phẳng một danh sách lồng nhau?

Bằng cách sử dụng khả năng hiểu danh sách, chúng ta có thể làm phẳng danh sách lồng nhau. Đây là một cách để làm điều đó

[element for element in sub_list for sub_list in nested_list]
  • Đầu tiên, lặp qua danh sách lồng nhau, sau đó lặp qua
    [element for element in sub_list for sub_list in nested_list]
    6 và lấy từng phần tử

4. Tìm chỉ mục của tất cả các lần xuất hiện của một mục trong danh sách lồng nhau của Python?

Sử dụng phương pháp [element for element in sub_list for sub_list in nested_list]9

Đầu tiên, lặp qua danh sách con trong danh sách lồng nhau, sau đó kiểm tra xem phần tử cụ thể đó có tồn tại trong

[element for element in sub_list for sub_list in nested_list]
6 đó không. Nếu nó tồn tại, hãy tìm chỉ mục của
[element for element in sub_list for sub_list in nested_list]
6 và chỉ mục của phần tử trong
[element for element in sub_list for sub_list in nested_list]
6 đó

Sử dụng danh sách hiểu

________số 8
  • Nó sẽ trả về một danh sách các bộ chứa chỉ mục của phần tử cụ thể đó
for (index1,sub_list) in enumerate(nested_list)

Hàm

[(index1,index2) for (index1,sub_list) in enumerate(nested_list) 
for (index2,element) in enumerate(sub_list) if element==’X’]
3 sẽ lặp qua iterable và trả về chỉ mục và giá trị thu được bằng cách lặp qua iterable

5. Làm cách nào để đếm số lần xuất hiện của một phần tử trong danh sách lồng nhau?

Trong danh sách, chúng ta có thể tìm số lần xuất hiện của một phần tử bằng phương thức

[(index1,index2) for (index1,sub_list) in enumerate(nested_list) 
for (index2,element) in enumerate(sub_list) if element==’X’]
4

[element for element in sub_list for sub_list in nested_list]
2

Trong

[element for element in sub_list for sub_list in nested_list]
6, chúng tôi lặp qua
[element for element in sub_list for sub_list in nested_list]
6, sau đó tìm số lượng của phần tử cụ thể đó trong mỗi
[element for element in sub_list for sub_list in nested_list]
6 rồi cộng số lượng bằng cách sử dụng hàm
[(index1,index2) for (index1,sub_list) in enumerate(nested_list) 
for (index2,element) in enumerate(sub_list) if element==’X’]
8

6. Làm cách nào để xóa một phần tử khỏi danh sách lồng nhau?

Sử dụng phương thức remove()

Đầu tiên, lặp qua

[(index1,index2) for (index1,sub_list) in enumerate(nested_list) 
for (index2,element) in enumerate(sub_list) if element==’X’]
9 và sau đó lặp qua các phần tử trong
[element for element in sub_list for sub_list in nested_list]
6 và kiểm tra xem phần tử cụ thể đó có tồn tại không. Nếu có nghĩa là, hãy xóa phần tử đó bằng phương thức
for (index1,sub_list) in enumerate(nested_list)
1

Nó sẽ loại bỏ tất cả các lần xuất hiện của phần tử cụ thể đó khỏi danh sách lồng nhau

Sử dụng danh sách hiểu

Lặp qua danh sách lồng nhau rồi lặp qua

[element for element in sub_list for sub_list in nested_list]
6 và chỉ giữ lại các phần tử không khớp với phần tử cần xóa

7. Làm cách nào để chèn các phần tử vào một chỉ mục cụ thể trong danh sách lồng nhau?

Nếu chúng ta muốn chèn một phần tử vào một chỉ mục cụ thể, chúng ta có thể làm điều đó bằng cách sử dụng phương thức

for (index1,sub_list) in enumerate(nested_list)
3

Lặp lại thông qua

[element for element in sub_list for sub_list in nested_list]
6 trong
[element for element in sub_list for sub_list in nested_list]
6, nếu chỉ mục của
[element for element in sub_list for sub_list in nested_list]
6 khớp, hãy chèn phần tử bằng cách sử dụng

[element for element in sub_list for sub_list in nested_list]
9

8. Làm cách nào để thay thế tất cả các lần xuất hiện của một phần tử trong danh sách lồng nhau?

Lấy chỉ mục của phần tử cần thay thế và sau đó gán phần tử mới bằng cách đề cập đến chỉ mục

[element for element in sub_list for sub_list in nested_list]
0

Chúng ta có thể lấy chỉ mục của

[element for element in sub_list for sub_list in nested_list]
6 và chỉ mục của phần tử cụ thể đó từ
[element for element in sub_list for sub_list in nested_list]
6 bằng cách sử dụng hàm
for (index1,sub_list) in enumerate(nested_list)
9

9. Làm cách nào để chuyển đổi danh sách lồng nhau thành từ điển?

ví dụ 1

Trong ví dụ danh sách lồng nhau đã cho, phần tử đầu tiên trong mỗi sub_list là một khóa và phần tử thứ hai là giá trị tương ứng

Đầu tiên, chúng ta có thể lặp qua danh sách lồng nhau và sau đó gán phần tử đầu tiên làm khóa và phần tử thứ hai làm giá trị

[element for element in sub_list for sub_list in nested_list]
2

ví dụ 2

Trong ví dụ danh sách lồng nhau đã cho, phần tử đầu tiên trong mỗi

[element for element in sub_list for sub_list in nested_list]
6 là một khóa và các phần tử còn lại là giá trị tương ứng

[element for element in sub_list for sub_list in nested_list]
3

[element for element in sub_list for sub_list in nested_list]
21 — Nó sẽ lấy tất cả các phần tử từ chỉ mục đầu tiên

10. Làm cách nào để chuyển đổi danh sách lồng nhau thành khung dữ liệu Pandas?

ví dụ 1

Trong ví dụ bên dưới,

[element for element in sub_list for sub_list in nested_list]
6 đầu tiên chứa
[element for element in sub_list for sub_list in nested_list]
23,
[element for element in sub_list for sub_list in nested_list]
6 còn lại chứa các giá trị tương ứng

đầu ra

ví dụ 2

Trong ví dụ dưới đây, tất cả

[element for element in sub_list for sub_list in nested_list]
6 chứa các giá trị. Không có tên cột nào trong
[element for element in sub_list for sub_list in nested_list]
6

đầu ra

Phần kết luận

Trong bài viết này, tôi đã trình bày một số mẹo quan trọng về cách sử dụng danh sách lồng nhau trong Python. So với danh sách Python thông thường, các thao tác trên danh sách lồng nhau sẽ được thực hiện hơi khác một chút