Bài viết này hướng dẫn các bạn cách tạo list danh sách trong ngôn ngữ lập trình Python sử dụng danh sách động và danh sách đơn giản. Ngoài ra, bạn sẽ học cách truy cập mục từ danh sách danh sách.
Tạo danh sách danh sách – động
Trong ví dụ sau, bạn sẽ tạo hai danh sách động và sau đó tạo danh sách các danh sách [danh sách động] trong vòng lặp for
listOfLists = [] myfirstlist = [] mysecondlist = [] n = 10 for i in range [0,n]: myfirstlist.append[i] mysecondlist.append[n-i] if len[myfirstlist] > 3 and len[mysecondlist] > 3: myfirstlist.remove[myfirstlist[0]] mysecondlist.remove[mysecondlist[0]] listOfLists.append[[list[myfirstlist], list[mysecondlist]]] print [listOfLists]
Lưu ý, các danh sách myfirstlist, mysecondlist được tạo động trong vòng lặp for theo cách chúng tôi muốn như được hiển thị trong đầu ra. Sau đó, bạn tạo một bản sao của toàn bộ danh sách bằng cách sử dụng hàm tạo danh sách list[myfirstlist] và list[mysecondlist]
Cuối cùng, sử dụng phương thức append[] của danh sách để tạo danh sách các danh sách bằng lệnh sau
listOfLists.append[[list[myfirstlist], list[mysecondlist]]]
đầu ra
[[[1, 2, 3], [9, 8, 7]], [[2, 3, 4], [8, 7, 6]], [[3, 4, 5], [7, 6, 5]], [[4, 5, 6], [6, 5, 4]], [[5, 6, 7], [5, 4, 3]], [[6, 7, 8], [4, 3, 2]], [[7, 8, 9], [3, 2, 1]]]
Làm cách nào để truy cập các mục từ danh sách các danh sách?
Bạn có thể truy cập các mục từ danh sách danh sách. Ví dụ: để truy cập [8,7,6], bạn cần sử dụng các chỉ mục một cách hợp lý như hình bên dưới
>>> print[listOfLists[1][1]] [8, 7, 6]
Danh sách tạo danh sách – Đơn giản
Trong phần trên chúng ta đã thấy cách tạo danh sách động của danh sách. Nếu bạn có danh sách được xác định trước như hình bên dưới. list1 và list2, bạn có thể sử dụng phương thức append[] đơn giản để tạo danh sách các danh sách
Danh sách hiểu là một trong những tính năng tuyệt vời nhất của Python. Đó là một cách thông minh và ngắn gọn để tạo danh sách bằng cách lặp qua một đối tượng có thể lặp lại. Việc hiểu danh sách lồng nhau không là gì ngoài việc hiểu danh sách trong một cách hiểu danh sách khác, khá giống với các vòng lặp lồng nhau
Mục lục Hiển thị
- Hiểu danh sách lồng nhau trong Python
- Làm cách nào để tạo danh sách lồng nhau động trong python?
- Làm cách nào để lấy các khóa động từ dữ liệu JSON?
- Cách tạo và khởi tạo danh sách danh sách sai trong python
- Làm cách nào để hợp nhất các danh sách lồng nhau trong python?
- Làm cách nào để tham gia danh sách lồng nhau?
- Làm cách nào để tạo một danh sách lồng nhau trong Python?
- Liệt kê trong Python
- Danh sách và bộ dữ liệu trong Python
Hãy cùng xem một số ví dụ để hiểu chức năng hiểu danh sách lồng nhau có thể làm gì
ví dụ 1
Tôi muốn tạo một ma trận giống như bên dưới. ma trận = [[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]Đoạn mã dưới đây sử dụng các vòng lặp for lồng nhau cho tác vụ đã cho
ma trận = []
cho tôi trong phạm vi [5]
# Nối một danh sách con rỗng bên trong danh sách
ma trận. nối thêm [[]]
cho j trong phạm vi[5]
ma trận[i]. nối thêm [j]
in [ma trận]
đầu ra
[[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [
Có thể đạt được kết quả tương tự bằng cách sử dụng khả năng hiểu danh sách lồng nhau chỉ trong một dòng
# Hiểu danh sách lồng nhau
ma trận = [[j cho j trong phạm vi [5]] cho tôi trong phạm vi [5]]
in [ma trận]
đầu ra. [[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [
Giải trình
Cú pháp của chương trình trên được hiển thị bên dưới
[biểu thức cho i trong phạm vi [5]] –> có nghĩa là thực thi biểu thức này và nối đầu ra của nó vào danh sách cho đến khi biến i lặp lại từ 0 đến 4
Ví dụ. - [i for i in range[5]] –> Trong trường hợp này, đầu ra của biểu thức
chỉ đơn giản là chính biến i và do đó chúng ta nối đầu ra của nó vào danh sách trong khi i
iterates from 0 to 4.Do đó, đầu ra sẽ là –> [0, 1, 2, 3, 4]
Nhưng trong trường hợp của chúng ta, bản thân biểu thức là một cách hiểu danh sách. Do đó, trước tiên chúng ta cần
giải biểu thức rồi nối đầu ra của nó vào danh sách.biểu thức = [j for j in range[5]] –> Kết quả của biểu thức này giống như
ví dụ đã thảo luận ở trên.Do đó biểu thức = [0, 1, 2, 3, 4]
Bây giờ, chúng ta chỉ cần thêm đầu ra này cho đến khi biến i lặp lại từ 0 đến 4, tức là
có tổng cộng 5 lần lặp lại. Do đó, đầu ra cuối cùng sẽ chỉ là một danh sách đầu ra của
biểu thức trên được lặp lại 5 lần.đầu ra. [[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [
ví dụ 2
Giả sử tôi muốn làm phẳng danh sách 2-D đã cho. ma trận = [[1, 2, 3], [4, 5, 6], [7, 8, 9]] Kết quả mong đợi. flatten_matrix = [1, 2, 3, 4, 5, 6, 7, 8, 9]Điều này có thể được thực hiện bằng cách sử dụng các vòng lặp lồng nhau như sau
# Danh sách 2-D
ma trận = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
flatten_matrix = []
cho danh sách con trong ma trận
cho val trong danh sách con
flatten_matrix. nối thêm [val]
in [flatten_matrix]
đầu ra. [1, 2, 3, 4, 5, 6, 7, 8, 9]
Một lần nữa, điều này có thể được thực hiện bằng cách sử dụng khả năng hiểu danh sách lồng nhau đã được hiển thị bên dưới
# Danh sách 2-D
ma trận = [[1, 2, 3], [4, 5], [6, 7, 8, 9]]
# Hiểu danh sách lồng nhau để làm phẳng ma trận 2 chiều nhất định
flatten_matrix = [val cho danh sách con trong ma trận cho val trong danh sách con]
in [flatten_matrix]
đầu ra. [1, 2, 3, 4, 5, 6, 7, 8, 9]
Giải trình
Trong trường hợp này, chúng ta cần lặp qua từng phần tử trong danh sách 2-D đã cho và nối nó
flatten_matrix = [val cho danh sách con trong ma trận cho val trong danh sách con]
vào một danh sách khác. Để hiểu rõ hơn, chúng ta có thể chia phần hiểu danh sách thành
ba phần.Dòng đầu tiên gợi ý những gì chúng ta muốn thêm vào danh sách. Dòng thứ hai là
vòng ngoài và dòng thứ ba là vòng trong.'cho danh sách con trong ma trận' trả về từng danh sách con bên trong ma trận sẽ là
[1, 2, 3], [4, 5], [6, 7, 8, 9]
'for val in sublist' trả về tất cả các giá trị bên trong sublist
Do đó, nếu sublist = [1, 2, 3], 'for val in sublist' -> đưa ra 1, 2, 3 làm đầu ra từng cái một
Đối với mỗi val như vậy, chúng tôi nhận được đầu ra là val và chúng tôi thêm nó vào danh sách
ví dụ 3
Giả sử tôi muốn làm phẳng danh sách 2-D đã cho và chỉ bao gồm những chuỗi có độ dài nhỏ hơn 6
các hành tinh = [['Mercury', 'Venus', 'Earth'], ['Mars', 'Jupiter', 'Saturn'], ['Uranus', 'Neptune', 'Pluto']]
Sản lượng dự kiến. flatten_planets = [‘Venus’, ‘Earth’, ‘Mars’, ‘Pluto’]
Điều này có thể được thực hiện bằng cách sử dụng điều kiện if bên trong vòng lặp for lồng nhau được hiển thị bên dưới
# 2-D Danh sách các hành tinh
các hành tinh = [['Mercury', 'Venus', 'Earth'], ['Mars', 'Jupiter', 'Saturn'], ['Uranus', 'Neptune', 'Pluto']]
flatten_planets = []
cho danh sách con trong các hành tinh
cho hành tinh trong danh sách phụ
nếu len[hành tinh] < 6
flatten_planet. nối thêm [hành tinh]
in [flatten_planet]
đầu ra. ['Venus', 'Trái đất', 'Mars', 'Pluto']
Điều này cũng có thể được thực hiện bằng cách sử dụng khả năng hiểu danh sách lồng nhau đã được hiển thị bên dưới
# 2-D Danh sách các hành tinh
các hành tinh = [['Mercury', 'Venus', 'Earth'], ['Mars', 'Jupiter', 'Saturn'], ['Uranus', 'Neptune', 'Pluto']]
# Hiểu danh sách lồng nhau với điều kiện if
flatten_planets = [hành tinh cho danh sách con trong các hành tinh cho hành tinh trong danh sách con nếu len[hành tinh] < 6]
in [flatten_planet]
đầu ra. ['Venus', 'Trái đất', 'Mars', 'Pluto']
Giải trình
Ví dụ này khá giống với ví dụ trước nhưng trong ví dụ này, chúng ta chỉ
cần thêm điều kiện nếu để kiểm tra xem chiều dài của một hành tinh cụ thể có nhỏ hơn không
6 or not.Điều này có thể được chia thành 4 phần như sau
flatten_planets = [hành tinh cho danh sách con trong các hành tinh cho hành tinh trong danh sách con nếu len[hành tinh] < 6]
Thẻ bài viết
con trăn
người viết kịch bản kỹ thuật
danh sách python
Biên kịch kỹ thuật 2018
Thẻ thực hành
danh sách python
Đọc toàn bộ bài viết
Làm cách nào để tạo danh sách lồng nhau động trong python?
Bạn có thể yêu cầu python tạo các danh sách riêng biệt nhưng giống hệt nhau cho mỗi hàng bằng cách sử dụng tính năng hiểu danh sách. Khi bạn sử dụng [rowexpr for i in xrange[height]] thì rowexpr sẽ được đánh giá một lần trên mỗi hàng. Sau đó, mẹo là sử dụng một biểu thức sẽ dẫn đến một danh sách duy nhất mỗi khi nó được đánh giá
Làm cách nào để lấy các khóa động từ dữ liệu JSON?
0. thêm nhận xét. . 2. Đây là một ví dụ đơn giản để lấy các khóa động từ phản hồi json – Get dynamic keys from JSON Data. public void getData [String data] { // Tải dữ liệu json và hiển thị JSONObject jsonData = new JSONObject [data]; . các phím []; . hasNext []]…
Cách tạo và khởi tạo danh sách danh sách sai trong python
Hãy bắt đầu từ cơ bản, cách nhanh nhất để tạo và khởi tạo một danh sách bình thường có cùng giá trị trong python là,
Đầu ra.
[5, 5, 5, 5, 5, 5, 5, 5, 5, 5]
Nó đã tạo một danh sách có kích thước 10 với cùng một phần tử . e. 5. Về cơ bản, nó đã sao chép đối tượng bên trong [], 10 lần. Hãy sử dụng logic tương tự để tạo và khởi tạo danh sách các danh sách,
# Tạo danh sách có 4 tham chiếu của cùng một danh sách con list_of_num = [[]] * 4 print['Danh sách danh sách. '] print[list_of_num]
Đầu ra.
[[], [], [], []]
Ở đây chúng tôi cung cấp một danh sách trống [] bên trong [] và nhân nó với 4. Nó đã tạo 4 tham chiếu khác nhau của [] và chèn chúng vào một danh sách mới. Vâng, đây không phải là 4 danh sách trống bên trong danh sách chính, nhưng đây không phải là các đối tượng danh sách khác thay vào đó đây chỉ là các tham chiếu của danh sách đầu tiên. Hãy xác nhận điều này bằng cách lặp lại danh sách và in id của từng đối tượng danh sách con,
cho elem trong list_of_num. print[id[elem]]
Đầu ra.
200792200 200792200 200792200 200792200
Tất cả các mục trong danh sách có cùng một ID i. e. chúng trỏ đến cùng một đối tượng danh sách.
Tại sao nó quan trọng?
Hãy chèn một phần tử vào danh sách con thứ 3 của danh sách chính i. e
Bây giờ hãy kiểm tra nội dung của danh sách chính,
print['Danh sách danh sách đã sửa đổi. '] print[list_of_num]
Đầu ra.
Danh sách danh sách đã sửa đổi. [[11], [11], [11], [11]]
Phần tử đã được chèn vào tất cả các danh sách phụ vì đây không phải là các danh sách khác nhau. Chúng tôi không mong đợi điều này ngay từ đầu, chúng tôi chỉ muốn chèn phần tử vào danh sách con thứ 3. Như vậy, chứng tỏ đây là một cách sai để tạo và khởi tạo một danh sách. Hãy nhìn vào cách đúng đắn,
quảng cáo
Làm cách nào để hợp nhất các danh sách lồng nhau trong python?
Đầu tiên, làm phẳng các danh sách lồng nhau. Đi đến Giao lộ bằng bộ lọc[] và lưu vào ‘lst3’. Bây giờ hãy tìm các phần tử không có trong lst1 hoặc lst2 và lưu chúng vào 'temp'. Cuối cùng, thêm 'temp' vào 'lst3'
Làm cách nào để tham gia danh sách lồng nhau?
Cách đơn giản là chạy hai vòng lặp lồng nhau – vòng lặp bên ngoài đưa ra một danh sách con của danh sách và vòng lặp bên trong đưa ra một phần tử của danh sách con tại một thời điểm. Mỗi phần tử được thêm vào đối tượng danh sách phẳng
Làm cách nào để tạo một danh sách lồng nhau trong Python?
Nhiệm vụ là chuyển đổi danh sách lồng nhau thành danh sách đơn trong python i. Cho dù có bao nhiêu cấp độ lồng trong danh sách python, thì tất cả các cấp độ lồng nhau phải được loại bỏ để chuyển đổi nó thành một danh sách chứa tất cả các giá trị của tất cả các danh sách bên trong dấu ngoặc ngoài cùng nhưng không có bất kỳ dấu ngoặc nào bên trong
Liệt kê trong Python
Tìm hiểu về Danh sách trong Python
Z
Zeeshan Abbasi
27 tháng 8 năm 2021-13 phút đọc
Danh sách và bộ dữ liệu trong Python
bởi John Sturtz kiến thức cơ bản về trăn
Đánh dấu là đã hoàn thành
Tweet Chia sẻ Email
Mục lục
Loại bỏ các quảng cáoXem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Danh sách và Bộ trong Python
Danh sách và bộ dữ liệu được cho là loại dữ liệu hữu ích, linh hoạt nhất của Python. Bạn sẽ tìm thấy chúng trong hầu hết mọi chương trình Python thông thường
Đây là những gì bạn sẽ học trong hướng dẫn này. Bạn sẽ đề cập đến các đặc điểm quan trọng của danh sách và bộ dữ liệu. Bạn sẽ học cách xác định chúng và cách thao tác với chúng. Khi bạn hoàn thành, bạn sẽ có cảm giác tốt về thời điểm và cách sử dụng các loại đối tượng này trong chương trình Python
Lấy bài kiểm tra. Kiểm tra kiến thức của bạn với bài kiểm tra tương tác “Danh sách Python và bộ dữ liệu” của chúng tôi. Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian