Hướng dẫn how to find nested list in python - cách tìm danh sách lồng nhau trong python

>>> lis=[['a','b','c'],['d','e','f']]
>>> any('d' in x for x in lis)
True

Biểu thức máy phát sử dụng

$ python -m timeit -s "lis=[['a','b','c'],['d','e','f'],[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]" "any('d' in x for x in lis)" 
1000000 loops, best of 3: 1.32 usec per loop
9

$ python -m timeit -s "lis=[['a','b','c'],['d','e','f'],[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]" "any('d' in x for x in lis)" 
1000000 loops, best of 3: 1.32 usec per loop

Biểu thức máy phát

$ python -m timeit -s "lis=[['a','b','c'],['d','e','f'],[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]" "'d' in (y for x in lis for y in x)"
100000 loops, best of 3: 1.56 usec per loop

danh sách hiểu

$ python -m timeit -s "lis=[['a','b','c'],['d','e','f'],[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]" "'d' in [y for x in lis for y in x]"
100000 loops, best of 3: 3.23 usec per loop

Làm thế nào nếu mặt hàng ở gần cuối, hoặc không có mặt?

$ python -m timeit -s "lis=[['a','b','c'],['d','e','f'],[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]" "any('d' in x for x in lis)" 
1000000 loops, best of 3: 1.32 usec per loop
9 nhanh hơn so với danh sách hiểu

$ python -m timeit -s "lis=[['a','b','c'],['d','e','f'],[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]"
    "'NOT THERE' in [y for x in lis for y in x]"
100000 loops, best of 3: 4.4 usec per loop

$ python -m timeit -s "lis=[['a','b','c'],['d','e','f'],[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]" 
    "any('NOT THERE' in x for x in lis)"
100000 loops, best of 3: 3.06 usec per loop

Có lẽ nếu danh sách dài hơn 1000 lần?

$ python -m timeit -s "lis=[['a','b','c'],['d','e','f'],[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]" "any('d' in x for x in lis)" 
1000000 loops, best of 3: 1.32 usec per loop
9 vẫn nhanh hơn

$ python -m timeit -s "lis=1000*[['a','b','c'],['d','e','f'],[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]"
    "'NOT THERE' in [y for x in lis for y in x]"
100 loops, best of 3: 3.74 msec per loop
$ python -m timeit -s "lis=1000*[['a','b','c'],['d','e','f'],[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]" 
    "any('NOT THERE' in x for x in lis)"
100 loops, best of 3: 2.48 msec per loop

Chúng tôi biết rằng các máy phát điện mất một thời gian để thiết lập, vì vậy cơ hội tốt nhất để LC giành chiến thắng là một danh sách rất ngắn

$ python -m timeit -s "lis=[['a','b','c']]"
    "any('c' in x for x in lis)"
1000000 loops, best of 3: 1.12 usec per loop
$ python -m timeit -s "lis=[['a','b','c']]"
    "'c' in [y for x in lis for y in x]"
1000000 loops, best of 3: 0.611 usec per loop

$ python -m timeit -s "lis=[['a','b','c'],['d','e','f'],[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]" "any('d' in x for x in lis)" 
1000000 loops, best of 3: 1.32 usec per loop
9 cũng sử dụng ít bộ nhớ hơn

Danh sách lồng nhau của Python là gì?

Một danh sách có thể chứa bất kỳ đối tượng sắp xếp nào, ngay cả một danh sách khác (người phụ), từ đó có thể chứa chính những người phụ, v.v. Điều này được gọi là danh sách lồng nhau.nested list.

Bạn có thể sử dụng chúng để sắp xếp dữ liệu vào các cấu trúc phân cấp.

Tạo một danh sách lồng nhau

Một danh sách lồng nhau được tạo ra bằng cách đặt một chuỗi các nhóm phụ được phân tách bằng dấu phẩy.

L = ['a', ['bb', ['ccc', 'ddd'], 'ee', 'ff'], 'g', 'h']

Truy cập các mục danh sách lồng nhau theo chỉ mục

Bạn có thể truy cập các mục riêng lẻ trong danh sách lồng nhau bằng nhiều chỉ mục.

Các chỉ mục cho các mục trong danh sách lồng nhau được minh họa như dưới đây:

Hướng dẫn how to find nested list in python - cách tìm danh sách lồng nhau trong python

L = ['a', 'b', ['cc', 'dd', ['eee', 'fff']], 'g', 'h']

print(L[2])
# Prints ['cc', 'dd', ['eee', 'fff']]

print(L[2][2])
# Prints ['eee', 'fff']

print(L[2][2][0])
# Prints eee

Lập chỉ mục danh sách tiêu cực trong danh sách lồng nhau

Bạn cũng có thể truy cập một danh sách lồng nhau bằng cách lập chỉ mục tiêu cực.

Các chỉ mục tiêu cực đếm ngược từ cuối danh sách. Vì vậy, & nbsp; ____ 23 & nbsp; đề cập đến mục cuối cùng, & nbsp; ____ ____ 24 & nbsp; là thứ hai, v.v.

Các chỉ mục tiêu cực cho các mục trong danh sách lồng nhau được minh họa như dưới đây:

Hướng dẫn how to find nested list in python - cách tìm danh sách lồng nhau trong python

L = ['a', 'b', ['cc', 'dd', ['eee', 'fff']], 'g', 'h']

print(L[-3])
# Prints ['cc', 'dd', ['eee', 'fff']]

print(L[-3][-1])
# Prints ['eee', 'fff']

print(L[-3][-1][-2])
# Prints eee

Thay đổi giá trị mục danh sách lồng nhau

Bạn có thể thay đổi giá trị của một mục cụ thể trong danh sách lồng nhau bằng cách tham khảo số chỉ mục của nó.

$ python -m timeit -s "lis=[['a','b','c'],['d','e','f'],[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]" "any('d' in x for x in lis)" 
1000000 loops, best of 3: 1.32 usec per loop
0

Thêm các mục vào danh sách lồng nhau

Để thêm các giá trị mới vào cuối danh sách lồng nhau, hãy sử dụng phương thức append ().

$ python -m timeit -s "lis=[['a','b','c'],['d','e','f'],[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]" "any('d' in x for x in lis)" 
1000000 loops, best of 3: 1.32 usec per loop
1

Khi bạn muốn chèn một mục tại một vị trí cụ thể trong danh sách lồng nhau, hãy sử dụng phương thức chèn ().

$ python -m timeit -s "lis=[['a','b','c'],['d','e','f'],[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]" "any('d' in x for x in lis)" 
1000000 loops, best of 3: 1.32 usec per loop
2

Bạn có thể hợp nhất một danh sách thành một danh sách khác bằng cách sử dụng phương thức mở rộng ().

$ python -m timeit -s "lis=[['a','b','c'],['d','e','f'],[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]" "any('d' in x for x in lis)" 
1000000 loops, best of 3: 1.32 usec per loop
3

Xóa các mục khỏi danh sách lồng nhau

Nếu bạn biết chỉ mục của mục bạn muốn, bạn có thể sử dụng phương thức pop (). Nó sửa đổi danh sách và trả về mục đã xóa.

$ python -m timeit -s "lis=[['a','b','c'],['d','e','f'],[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]" "any('d' in x for x in lis)" 
1000000 loops, best of 3: 1.32 usec per loop
4

Nếu bạn không cần giá trị bị loại bỏ, hãy sử dụng câu lệnh DEL.

$ python -m timeit -s "lis=[['a','b','c'],['d','e','f'],[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]" "any('d' in x for x in lis)" 
1000000 loops, best of 3: 1.32 usec per loop
5

Nếu bạn không chắc chắn vị trí của mục trong danh sách, hãy sử dụng phương thức Remove () để xóa nó theo giá trị.

$ python -m timeit -s "lis=[['a','b','c'],['d','e','f'],[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]" "any('d' in x for x in lis)" 
1000000 loops, best of 3: 1.32 usec per loop
6

Tìm độ dài danh sách lồng nhau

Bạn có thể sử dụng chức năng Len () & NBSP;

$ python -m timeit -s "lis=[['a','b','c'],['d','e','f'],[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]" "any('d' in x for x in lis)" 
1000000 loops, best of 3: 1.32 usec per loop
7

Lặp lại thông qua một danh sách lồng nhau

Để lặp lại các mục của một danh sách lồng nhau, sử dụng đơn giản cho vòng lặp.

$ python -m timeit -s "lis=[['a','b','c'],['d','e','f'],[1,2,3],[4,5,6],[7,8,9],[10,11,12],[13,14,15],[16,17,18]]" "any('d' in x for x in lis)" 
1000000 loops, best of 3: 1.32 usec per loop
8

Làm thế nào để bạn truy cập các mục trong một danh sách lồng nhau?

Bạn cũng có thể truy cập một danh sách lồng nhau bằng cách lập chỉ mục tiêu cực.Các chỉ mục tiêu cực đếm ngược từ cuối danh sách.Vì vậy, l [-1] đề cập đến mục cuối cùng, l [-2] là thứ hai, v.v.negative indexing as well. Negative indexes count backward from the end of the list. So, L[-1] refers to the last item, L[-2] is the second-last, and so on.

Làm thế nào để bạn tìm thấy số lượng các yếu tố trong một danh sách lồng nhau trong Python?

Cách đơn giản nhất để có được số lượng các phần tử trong danh sách là sử dụng chức năng tích hợp Python Len ().use the Python built-in function len() .

Làm thế nào để bạn tìm thấy số lượng người con trong một danh sách trong Python?

Đưa ra một danh sách và một người phụ, tính xuất hiện của danh sách phụ trong danh sách ...
Đầu vào: test_list = [4, 5, 3, 5, 7, 8, 3, 5, 7, 2, 3, 5, 7], sublist = [3, 5, 7].
Đầu ra: 3 ..
Giải thích: 3, 5, 7 xảy ra 3 lần ..

Làm cách nào để tìm kiếm một danh sách trong Python?

Đối với điều đó, phương thức chỉ mục tích hợp () của Python được sử dụng làm công cụ tìm kiếm ...
my_list là tên của danh sách bạn đang tìm kiếm qua ..
.....
Mục là tham số cần thiết ..