Danh sách trăn [-1]

Python có một loại danh sách tích hợp tuyệt vời có tên là "danh sách". Danh sách chữ được viết trong dấu ngoặc vuông [ ]. Danh sách hoạt động tương tự như chuỗi -- sử dụng hàm len[] và dấu ngoặc vuông [ ] để truy cập dữ liệu, với phần tử đầu tiên ở chỉ mục 0. [Xem con trăn chính thức. tài liệu danh sách tổ chức. ]

  colors = ['red', 'blue', 'green']
  print[colors[0]]    ## red
  print[colors[2]]    ## green
  print[len[colors]]  ## 3

Bài tập có dấu = trong danh sách không tạo bản sao. Thay vào đó, phép gán làm cho hai biến trỏ đến một danh sách trong bộ nhớ

  b = colors   ## Does not copy the list

"Danh sách trống" chỉ là một cặp dấu ngoặc rỗng [ ]. '+' hoạt động để nối hai danh sách, vì vậy [1, 2] + [3, 4] mang lại [1, 2, 3, 4] [điều này giống như + với chuỗi]

CHO và TRONG

Các cấu trúc *for* và *in* của Python cực kỳ hữu ích và cách sử dụng chúng đầu tiên mà chúng ta sẽ thấy là với các danh sách. Cấu trúc *for* --

  b = colors   ## Does not copy the list
0 -- là một cách dễ dàng để xem từng phần tử trong danh sách [hoặc tập hợp khác]. Không thêm hoặc xóa khỏi danh sách trong quá trình lặp lại

  squares = [1, 4, 9, 16]
  sum = 0
  for num in squares:
    sum += num
  print[sum]  ## 30

Nếu bạn biết loại nội dung nào có trong danh sách, hãy sử dụng tên biến trong vòng lặp để nắm bắt thông tin đó, chẳng hạn như "num" hoặc "name" hoặc "url". Vì mã Python không có cú pháp nào khác để nhắc bạn về các loại, tên biến của bạn là một cách quan trọng để bạn hiểu rõ những gì đang diễn ra. [cái này hơi sai. Khi bạn tiếp xúc nhiều hơn với python, bạn sẽ thấy các tham chiếu đến gợi ý nhập cho phép bạn thêm thông tin nhập vào định nghĩa chức năng của mình. Python không sử dụng các gợi ý kiểu này khi nó chạy các chương trình của bạn. Chúng được sử dụng bởi các chương trình khác như IDE [môi trường phát triển tích hợp] và các công cụ phân tích tĩnh như bộ kiểm tra xơ/loại để xác thực xem các hàm của bạn có được gọi với các đối số tương thích hay không. ]

Bản thân cấu trúc *in* là một cách dễ dàng để kiểm tra xem một phần tử có xuất hiện trong danh sách [hoặc bộ sưu tập khác] hay không --

  b = colors   ## Does not copy the list
1 -- kiểm tra xem giá trị có nằm trong bộ sưu tập hay không, trả về True/False

  list = ['larry', 'curly', 'moe']
  if 'curly' in list:
    print['yay']

Các cấu trúc for/in được sử dụng rất phổ biến trong mã Python và hoạt động trên các loại dữ liệu khác ngoài danh sách, vì vậy bạn chỉ cần ghi nhớ cú pháp của chúng. Bạn có thể có thói quen từ các ngôn ngữ khác khi bạn bắt đầu lặp lại thủ công một bộ sưu tập, trong Python bạn chỉ nên sử dụng for/in

Bạn cũng có thể sử dụng for/in để làm việc trên một chuỗi. Chuỗi hoạt động giống như một danh sách các ký tự của nó, vì vậy

  b = colors   ## Does not copy the list
2 in tất cả các ký tự trong một chuỗi

Phạm vi

Hàm range[n] trả về các số 0, 1,. n-1 và phạm vi [a, b] trả về a, a+1,. b-1 -- tối đa nhưng không bao gồm số cuối cùng. Sự kết hợp giữa vòng lặp for và hàm range[] cho phép bạn tạo một vòng lặp for kiểu số truyền thống

  ## print the numbers from 0 through 99
  for i in range[100]:
    print[i]

Có một biến thể xrange[] giúp tránh chi phí xây dựng toàn bộ danh sách cho các trường hợp nhạy cảm về hiệu suất [trong Python 3, phạm vi[] sẽ có hành vi hiệu suất tốt và bạn có thể quên xrange[]]

Trong khi lặp lại

Python cũng có vòng lặp while tiêu chuẩn và các câu lệnh *break* và *continue* hoạt động như trong C++ và Java, làm thay đổi tiến trình của vòng lặp trong cùng. Các vòng lặp for/in ở trên giải quyết trường hợp phổ biến của việc lặp qua mọi phần tử trong danh sách, nhưng vòng lặp while cung cấp cho bạn toàn quyền kiểm soát đối với các số chỉ mục. Đây là vòng lặp while truy cập mọi phần tử thứ 3 trong danh sách

________số 8_______

Liệt kê các phương thức

Dưới đây là một số phương pháp danh sách phổ biến khác

  • danh sách. append[elem] -- thêm một phần tử vào cuối danh sách. lỗi thường gặp. không trả lại danh sách mới, chỉ sửa đổi bản gốc
  • danh sách. insert[index, elem] -- chèn phần tử vào chỉ mục đã cho, dịch chuyển phần tử sang bên phải
  • danh sách. extension[list2] thêm các phần tử trong list2 vào cuối danh sách. Sử dụng + hoặc += trong danh sách tương tự như sử dụng hàm mở rộng[]
  • danh sách. index[elem] -- tìm kiếm phần tử đã cho từ đầu danh sách và trả về chỉ mục của nó. Ném một ValueError nếu phần tử không xuất hiện [sử dụng "in" để kiểm tra mà không có ValueError]
  • danh sách. remove[elem] -- tìm kiếm phiên bản đầu tiên của phần tử đã cho và xóa nó [ném ValueError nếu không có]
  • danh sách. sort[] -- sắp xếp danh sách tại chỗ [không trả về]. [Hàm sorted[] hiển thị sau được ưu tiên. ]
  • danh sách. reverse[] -- đảo ngược danh sách tại chỗ [không trả về]
  • danh sách. pop[index] -- xóa và trả về phần tử tại chỉ mục đã cho. Trả về phần tử ngoài cùng bên phải nếu chỉ mục bị bỏ qua [gần như ngược lại với append[]]

Lưu ý rằng đây là các *phương thức* trên một đối tượng danh sách, trong khi len[] là một hàm lấy danh sách [hoặc chuỗi hoặc bất kỳ thứ gì] làm đối số

  list = ['larry', 'curly', 'moe']
  list.append['shemp']         ## append elem at end
  list.insert[0, 'xxx']        ## insert elem at index 0
  list.extend[['yyy', 'zzz']]  ## add list of elems at end
  print[list]  ## ['xxx', 'larry', 'curly', 'moe', 'shemp', 'yyy', 'zzz']
  print[list.index['curly']]    ## 2

  list.remove['curly']         ## search and remove that element
  list.pop[1]                  ## removes and returns 'larry'
  print[list]  ## ['xxx', 'moe', 'shemp', 'yyy', 'zzz']

lỗi thường gặp. lưu ý rằng các phương pháp trên không *trả về* danh sách đã sửa đổi, chúng chỉ sửa đổi danh sách ban đầu

  list = [1, 2, 3]
  print[list.append[4]]   ## NO, does not work, append[] returns None
  ## Correct pattern:
  list.append[4]
  print[list]  ## [1, 2, 3, 4]

Xây dựng danh sách

Một mẫu phổ biến là bắt đầu một danh sách dưới dạng danh sách trống [], sau đó sử dụng append[] hoặc extend[] để thêm các phần tử vào danh sách đó

  list = []          ## Start as the empty list
  list.append['a']   ## Use append[] to add elements
  list.append['b']

Liệt kê các lát cắt

Các lát cắt hoạt động trên danh sách giống như với chuỗi và cũng có thể được sử dụng để thay đổi các phần con của danh sách

  list = ['a', 'b', 'c', 'd']
  print[list[1:-1]]   ## ['b', 'c']
  list[0:2] = 'z'    ## replace ['a', 'b'] with ['z']
  print[list]         ## ['z', 'c', 'd']

Bài tập. danh sách1. py

Để thực hành tài liệu trong phần này, hãy thử các bài toán trong list1. py không sử dụng sắp xếp [trong Bài tập cơ bản]

có nghĩa là gì [. 1 có nghĩa là gì trong Python?

[. 1] có nghĩa là. Bắt đầu từ đầu, kết thúc khi kết thúc, đi theo các bước 1 [đây là giá trị mặc định nên bạn thậm chí không cần viết]. [. -1] có nghĩa là. Bắt đầu ở cuối [dấu trừ làm điều đó cho bạn], kết thúc khi không còn gì và đi lùi 1.

sự khác biệt giữa danh sách [. ] và danh sách?

li[. ] tạo một bản sao của danh sách gốc. Nhưng nó không tham chiếu đến cùng một đối tượng danh sách . Do đó, bạn không mạo hiểm thay đổi danh sách gốc bằng cách thay đổi bản sao được tạo bởi li[. ]. Ở đây list2 được thay đổi bằng cách thay đổi list1 nhưng list3 không thay đổi.

Ý nghĩa của danh sách [. trong Python?

Bộ sưu tập Python [Mảng] . Danh sách là bộ sưu tập được sắp xếp theo thứ tự và có thể thay đổi . Cho phép các thành viên trùng lặp. Tuple là một bộ sưu tập được sắp xếp và không thể thay đổi.

Chủ Đề