Cái gì được lồng trong Python?

Một danh sách có thể chứa bất kỳ đối tượng sắp xếp nào, thậm chí một danh sách khác [danh sách con], do đó có thể chứa chính danh sách con, v.v. Đây được gọi là danh sách lồng nhau

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

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

Danh sách lồng nhau được tạo bằng cách đặt một chuỗi danh sách con đượ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ư bên dưới

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 phủ định trong danh sách lồng nhau

Bạn cũng có thể truy cập danh sách lồng nhau bằng cách lập chỉ mục phủ định

Chỉ số phủ định đếm ngược từ cuối danh sách. Vì vậy, 

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
2 là mục cuối cùng, 
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
3 là mục cuối cùng thứ hai, v.v.

Các chỉ mục phủ định cho các mục trong danh sách lồng nhau được minh họa như bên dưới

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ó

L = ['a', ['bb', 'cc'], 'd']
L[1][1] = 0
print[L]
# Prints ['a', ['bb', 0], 'd']

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[]

L = ['a', ['bb', 'cc'], 'd']
L[1].append['xx']
print[L]
# Prints ['a', ['bb', 'cc', 'xx'], 'd']

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

L = ['a', ['bb', 'cc'], 'd']
L[1].insert[0,'xx']
print[L]
# Prints ['a', ['xx', 'bb', 'cc'], 'd']

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

________số 8_______

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ả lại mục đã xóa

Trong bài học này, bạn sẽ khám phá cách danh sách có thể được lồng vào nhau. Bạn đã thấy rằng một phần tử trong danh sách có thể là bất kỳ loại đối tượng nào. Điều đó bao gồm một danh sách khác. Một danh sách có thể chứa các danh sách con, do đó có thể chứa chính các danh sách con, v.v. với độ sâu tùy ý

>>>

>>> x = ['a', ['bb', ['ccc', 'ddd'], 'ee', 'ff'], 'g', ['hh', 'ii'], 'j']
>>> x
['a', ['bb', ['ccc', 'ddd'], 'ee', 'ff'], 'g', ['hh', 'ii'], 'j']
>>> x[0]
'a'
>>> print[x[0], x[2], x[4]]
a g j
>>> x[1]
['bb', ['ccc', 'ddd'], 'ee', 'ff']
>>> x[1][0]
'bb'
>>> x[1][1]
['ccc', 'ddd']
>>> x[1][2]
'ee'
>>> x[1][1][1]
'ddd'
>>> x[3][0]
'hh'
>>> x[-2][-1]
'ii'
>>> x[-4][-3][-2]
'ccc'

>>> x
['a', ['bb', ['ccc', 'ddd'], 'ee', 'ff'], 'g', ['hh', 'ii'], 'j']
>>> len[x]
5
>>> 'ddd' in x
False
>>> 'ddd' in x[1]
False
>>> 'ddd' in x[1][1]
True

km trên

Xin chào Ngài, một số trường hợp sử dụng tốt của NESTED LISTS là gì?

Chris Bailey Nhóm RP trên

Xin chào km. Trường hợp tốt nhất tôi có thể nghĩ đến là một Ma trận hoặc một mảng, giống như một bảng tính. Nơi bạn có thể có các cột và hàng dữ liệu. Nó có thể trông giống như 44 trong đó hàng đầu tiên là tên thành phố, tiếp theo là dữ liệu nhiệt độ của các thành phố đó trên 3 hàng nữa. Có một vài gói Python chuyên làm việc với loại dữ liệu này, Numpy và Pandas sử dụng Numpy

km trên

Cảm ơn Chris nhiều, để mình thử

koellingh trên

Tôi tò mò liệu các hàm min[] và max[] có hỗ trợ cả int và float trong cùng một danh sách không. xung lực ban đầu của tôi là nó sẽ không, nhưng nó đã hoạt động. Số float có giá trị ascii không?

Chris Bailey Nhóm RP trên

Xin chào @koellingh, tôi nghĩ câu hỏi này phần nào dựa trên bài học trước, với 45 và 46. Số float và số nguyên có thể được so sánh bằng cách sử dụng min và max, do cách Python xử lý các số. “Python hỗ trợ đầy đủ số học hỗn hợp. khi một toán tử số học nhị phân có các toán hạng thuộc các kiểu số khác nhau, thì toán hạng có loại "hẹp hơn" được mở rộng sang toán hạng kia, trong đó số nguyên hẹp hơn dấu phẩy động, hẹp hơn phức hợp. So sánh giữa các số thuộc các loại khác nhau hoạt động như thể các giá trị chính xác của các số đó đang được so sánh. ”

Trong trường hợp so sánh các ký tự ASCII riêng lẻ bằng cách sử dụng 46 và 45, các hàm đó đang sử dụng giá trị thứ tự/ASCII

Nếu bạn cố gắng so sánh hỗn hợp các ký tự hoặc chuỗi với số bằng các hàm đó, bạn sẽ gặp Lỗi. `TypeError. '>' không được hỗ trợ giữa các phiên bản của 'int' và 'str'

koellingh trên

À, cái đó rất hữu ích. tôi hiểu điều này bây giờ. Nếu int được coi là giá trị ascii, thì sẽ không có lỗi khi hàm min[] hoặc max[] chạy trên danh sách có cả int và chuỗi. Lỗi là do nó đang coi int là thứ tự và chuỗi là giá trị ascii và không thể so sánh thứ tự và chuỗi với nhau. Và ints và float đều là thứ tự

DoubleA trên

Xin chào Chris. Cảm ơn cho một hướng dẫn rõ ràng như vậy. Tôi đang học hỏi rất nhiều từ các bạn. Chơi với danh sách Bây giờ tôi có một cái gì đó để thêm vào mà có lẽ đáng được đề cập ở đây. Đây là đoạn mã của tôi

import copy
my_list = ['a', ['b', 'c', ['d', 'e', 'f'], 'g', 'h'], 'j', 'i', ['m', ['k', 'l'], 'n']]
deep_copy = copy.deepcopy[my_list]
shallow_copy = my_list.copy[]
my_list[1][2][0] = '_d_'  # I assign a different value to the chosen element of my_list
print[shallow_copy]       # the element [1][2][0] of the shallow_copy list has also been affected! 
print[deep_copy]          # the element [1][2][0] of the deep_copy list has not been affected! 

# Copying my_list using the list[] function and the slice [:] operator crates also a shallow copy of my_list

my_second_list = list[my_list]
my_third_list = my_list[:]
my_list[1][2][1] = '_e_'
print[my_second_list]  # the element of my_second_list[1][2][1] has also been affected
print[my_third_list]   # the element of my_third_list[1][2][1] has also been affected

Người ta có thể kết luận rằng cần lưu ý rằng việc “sao chép” đơn giản danh sách lồng nhau không lan truyền đến các phần tử lồng nhau của bản sao. Tôi nghĩ rằng, có một sự song song với toán tử “in”, như đã được chứng minh, không “thấy” các phần tử lồng nhau và coi chúng là danh sách độc lập hoặc danh sách riêng biệt. Sao chép danh sách lồng nhau bằng các công cụ khác với phương pháp 49 tạo ra các bản sao nông của danh sách gốc và mọi thay đổi đối với danh sách "cha mẹ" cũng sẽ được phản ánh trong các bản sao tiếp theo

Danh sách lồng nhau trong Python là gì?

Danh sách lồng nhau là danh sách các danh sách hoặc bất kỳ danh sách nào có một danh sách khác làm thành phần [danh sách con] . Chúng có thể hữu ích nếu bạn muốn tạo ma trận hoặc cần lưu trữ danh sách con cùng với các loại dữ liệu khác.

IF lồng nhau trong Python với ví dụ là gì?

Một câu lệnh if lồng nhau là một câu lệnh if được lồng [nghĩa là bên trong] một câu lệnh if khác hoặc câu lệnh if/else . Những tuyên bố đó kiểm tra điều kiện đúng/sai và sau đó thực hiện hành động thích hợp [Lutz, 2013; Matthes, 2016]. Đó là cách chúng tôi thực thi mã Python một cách có điều kiện [Python Docs, n. d. ].

Việc sử dụng chức năng lồng nhau là gì?

Hàm lồng nhau có thể truy cập các hàm cục bộ, biến, hằng, loại, lớp, v.v. trong cùng một phạm vi hoặc trong bất kỳ phạm vi kèm theo nào mà không truyền tham số rõ ràng , điều này giúp đơn giản hóa rất nhiều việc truyền dữ liệu vào và ra khỏi hàm lồng nhau. Điều này thường được phép cho cả đọc và viết.

Vòng lặp while lồng nhau trong Python là gì?

Trong ngôn ngữ lập trình Python có hai loại vòng lặp là vòng lặp for và vòng lặp while. Sử dụng các vòng lặp này, chúng ta có thể tạo các vòng lặp lồng nhau trong Python. Các vòng lặp lồng nhau có nghĩa là các vòng lặp bên trong một vòng lặp . Ví dụ, vòng lặp while bên trong vòng lặp for, vòng lặp for bên trong vòng lặp for, v.v.

Chủ Đề