Danh sách có phải là một bộ Python không?

Điều đầu tiên bạn cần quyết định là cấu trúc dữ liệu có cần thay đổi hay không. Như đã đề cập, danh sách có thể thay đổi, bộ dữ liệu thì không. Điều này cũng có nghĩa là các bộ dữ liệu có thể được sử dụng cho các khóa từ điển, trong khi danh sách không thể

Theo kinh nghiệm của tôi, các bộ dữ liệu thường được sử dụng khi thứ tự và vị trí có ý nghĩa và nhất quán. Ví dụ: khi tạo cấu trúc dữ liệu cho trò chơi phiêu lưu tự chọn, tôi đã chọn sử dụng bộ dữ liệu thay vì danh sách vì vị trí trong bộ dữ liệu có ý nghĩa. Đây là một ví dụ từ cấu trúc dữ liệu đó

pages = {'foyer': {'text' : "some text", 
          'choices' : [['open the door', 'rainbow'],
                     ['go left into the kitchen', 'bottomless pit'],
                     ['stay put','foyer2']]},}

Vị trí đầu tiên trong bộ dữ liệu là lựa chọn được hiển thị cho người dùng khi họ chơi trò chơi và vị trí thứ hai là khóa của trang mà lựa chọn đó chuyển đến và điều này nhất quán cho tất cả các trang

Bộ dữ liệu cũng hiệu quả hơn bộ nhớ so với danh sách, mặc dù tôi không chắc khi nào lợi ích đó trở nên rõ ràng

Trong các hướng dẫn về python trước đây của chúng tôi, chúng tôi đã thấy các bộ dữ liệu trong python và danh sách trong python. Cả hai đều là bộ sưu tập không đồng nhất của các đối tượng python. Nhưng bạn chọn cái nào khi cần lưu trữ một bộ sưu tập?

Vì vậy, hãy bắt đầu Hướng dẫn về Python Tuples so với Danh sách

Python Tuples vs Lists – So sánh giữa Lists và Tuples

2. Bản sửa đổi của Tuples trong Python

Trước khi so sánh các bộ dữ liệu và danh sách, chúng ta nên sửa lại hai. Đầu tiên, chúng ta nhìn vào một tuple
Một bộ là một tập hợp các giá trị và chúng tôi khai báo nó bằng dấu ngoặc đơn. Tuy nhiên, chúng ta cũng có thể sử dụng đóng gói tuple để làm điều tương tự và giải nén để gán các giá trị của nó cho một chuỗi các biến

>>> numbers=[1,2,'three']
>>> numbers=4,5,6
>>> a,b,c=numbers
>>> print[numbers,a,b,c,type[numbers]]

[4, 5, 6] 4 5 6

Một bộ dữ liệu được trả về khi chúng ta gọi phương thức localtime[]

>>> import time
>>> time.localtime[]

thời gian. struct_time[tm_year=2018, tm_mon=1, tm_mday=1, tm_hour=23, tm_min=1, tm_sec=59, tm_wday=0, tm_yday=1, tm_isdst=0]

Để truy cập một tuple, chúng tôi sử dụng lập chỉ mục, bắt đầu từ 0

>>> numbers[1]

5

Chúng ta cũng có thể cắt nó để lấy một phần của nó

>>> numbers[:-1]

[4, 5]

Cuối cùng, chúng ta có thể xóa toàn bộ Tuple

>>> del numbers
>>> numbers

Traceback [cuộc gọi gần đây nhất cuối cùng]

File “”, line 1, in

con số

TênLỗi. tên 'số' không được xác định

Chúng tôi cũng đã học một số hàm và phương thức trên bộ dữ liệu và danh sách. Bạn phải đọc hướng dẫn của chúng tôi về chúng để hiểu rõ hơn

3. Bản sửa đổi danh sách trong Python

Không giống như trong C++, chúng ta không có mảng để làm việc với Python. Ở đây, chúng tôi có một danh sách thay thế

Chúng tôi tạo danh sách bằng dấu ngoặc vuông

>>> colors=['red','blue','green']

Chúng ta cũng có thể cắt danh sách

>>> colors[-2:]

['xanh da trời', 'xanh lá cây']

Sau đó, chúng tôi đã học cách gán lại và xóa chúng

________số 8_______

['hồng', 'xanh lam', 'xanh lá cây']

>>> del colors[0]
>>> colors[0]

'màu xanh da trời'

>>> del colors
>>> colors

Traceback [cuộc gọi gần đây nhất cuối cùng]

File “”, line 1, in

màu sắc

TênLỗi. tên 'màu sắc' không được xác định

Bây giờ chúng tôi đã làm mới bộ nhớ của mình, chúng tôi có thể tiến hành phân biệt giữa các bộ dữ liệu python với danh sách

4. Bộ dữ liệu Python so với danh sách – Khả năng thay đổi

Sự khác biệt chính giữa bộ dữ liệu và danh sách là danh sách có thể thay đổi, trong khi bộ dữ liệu là bất biến. Điều này có nghĩa là một danh sách có thể được thay đổi, nhưng một bộ thì không thể

a. Danh sách có thể thay đổi

Trước tiên hãy xem danh sách. Hãy lấy một danh sách mới cho các mục đích mẫu mực

>>> import time
>>> time.localtime[]
0

Trước tiên, chúng ta sẽ thử gán lại một phần tử của danh sách. Hãy gán lại phần tử thứ hai để giữ giá trị 3

>>> import time
>>> time.localtime[]
1

[0, 3, 2, 3, 4, 5, 6, 7]

Một lần nữa, hãy xem cách chúng ta có thể chỉ định lại toàn bộ danh sách

>>> import time
>>> time.localtime[]
2

[7, 6, 5, 4, 3, 2, 1, 0]

Nó hoạt động, tuyệt vời

Bây giờ, chúng tôi sẽ xóa chỉ một phần tử khỏi danh sách

>>> import time
>>> time.localtime[]
3

[7, 5, 4, 3, 2, 1, 0]

Điều này thật dễ dàng, nhưng chúng ta có thể xóa một phần của danh sách không?

>>> import time
>>> time.localtime[]
4

[7, 5, 4]

Chúng ta có thể truy cập một lát cắt theo cùng một cách. Chúng ta có thể gán lại một lát cắt không?

>>> import time
>>> time.localtime[]
5

[1, 6, 7, 8, 4, 5]

Thật vậy, chúng ta có thể. Cuối cùng, hãy thử xóa toàn bộ danh sách

>>> import time
>>> time.localtime[]
6

Traceback [cuộc gọi gần đây nhất cuối cùng]

File “”, line 1, in

danh sách1

TênLỗi. tên 'list1' không được xác định

Danh sách không tồn tại nữa

b. Một Tuple là bất biến

Bây giờ, hãy thử làm những điều tương tự với một tuple. Chúng tôi biết rằng một bộ dữ liệu là bất biến, vì vậy một số thao tác này sẽ không hoạt động. Chúng tôi sẽ lấy một bộ dữ liệu mới cho mục đích này

>>> import time
>>> time.localtime[]
7

Đầu tiên, hãy thử gán lại phần tử thứ hai

>>> import time
>>> time.localtime[]
8

Traceback [cuộc gọi gần đây nhất cuối cùng]

File “”, line 1, in

mytuple[1]=3

LoạiLỗi. đối tượng 'tuple' không hỗ trợ gán mục

Như bạn có thể thấy, một bộ không hỗ trợ gán mục

Tuy nhiên, chúng ta có thể gán lại toàn bộ bộ dữ liệu

>>> import time
>>> time.localtime[]
9

[2, 3, 4, 5, 6]

Tiếp theo, hãy thử cắt một bộ để truy cập hoặc xóa nó

>>> numbers[1]
0

[5, 6]

>>> numbers[1]
1

Traceback [cuộc gọi gần đây nhất cuối cùng]

File “”, line 1, in

mytuple[3. ]

LoạiLỗi. đối tượng 'tuple' không hỗ trợ xóa mục

Như có thể nhìn thấy, chúng tôi có thể cắt nó để truy cập nó, nhưng chúng tôi không thể xóa một lát. Điều này là bởi vì nó là bất biến

Chúng ta có thể xóa một phần tử không?

>>> numbers[1]
2

Traceback [cuộc gọi gần đây nhất cuối cùng]

File “”, line 1, in

del  mytuple[3]

LoạiLỗi. đối tượng 'tuple' không hỗ trợ xóa mục

Rõ ràng, câu trả lời là không

Cuối cùng, hãy thử xóa toàn bộ bộ dữ liệu

>>> numbers[1]
3

Traceback [cuộc gọi gần đây nhất cuối cùng]

File “”, line 1, in

cây bí

TênLỗi. tên 'mytuple' không được xác định

Vì vậy, ở đây, chúng tôi kết luận rằng bạn có thể cắt một bộ, gán lại toàn bộ hoặc xóa toàn bộ

Nhưng bạn không thể xóa hoặc gán lại chỉ một vài phần tử hoặc một lát cắt

Hãy để chúng tôi tiếp tục với nhiều sự khác biệt giữa các bộ dữ liệu python so với danh sách

5. Chức năng

Một số hàm python áp dụng cho cả hai, đó là len[], max[], min[], sum[], any[], all[], sorted[]. Chúng tôi sẽ chỉ lấy một ví dụ ở đây cho cả hai vùng chứa

>>> numbers[1]
4

3

>>> numbers[1]
5

3

6. phương pháp

Danh sách và bộ chia sẻ các phương thức index[] và count[]. Nhưng ngoài những phương pháp đó, có một vài phương pháp áp dụng cho danh sách. Đó là- append[], insert[], remove[], pop[], clear[], sort[], và reverse[]. Hãy lấy một ví dụ về một trong số này

>>> numbers[1]
6

1

>>> numbers[1]
7

1
Để hiểu sâu hơn về tất cả các phương thức và chức năng mà chúng tôi đã đề cập, bạn nên tham khảo các bài viết của chúng tôi về danh sách và bộ dữ liệu

7. Tuples trong một danh sách

Chúng ta có thể lưu trữ các bộ dữ liệu trong một danh sách khi chúng ta muốn

>>> numbers[1]
8

>>> numbers[1]
9

Nhưng khi nào chúng ta cần làm điều này?

[[1, ‘ABC’], [2, ‘DEF’], [3, ‘GHI’]]

8. Danh sách trong Tuple

Tương tự như vậy, chúng ta cũng có thể sử dụng một tuple để lưu trữ danh sách. Hãy xem làm thế nào

>>> numbers[:-1]
0

9. Bộ dữ liệu lồng nhau

Một bộ dữ liệu có thể chứa nhiều bộ dữ liệu hơn và điều này có thể diễn ra trong hơn hai chiều

>>> numbers[:-1]
1

Để truy cập phần tử có giá trị 8, chúng tôi viết đoạn mã sau

>>> numbers[:-1]
2

8

10. Danh sách lồng nhau

Tương tự, một danh sách có thể chứa nhiều danh sách hơn, theo bao nhiêu thứ nguyên bạn muốn

>>> numbers[:-1]
3

Để truy cập phần tử có giá trị 5, chúng tôi viết đoạn mã sau

>>> numbers[:-1]
4

5

11. Khi nào nên sử dụng cái nào

Sử dụng một bộ khi bạn biết thông tin nào đi trong vùng chứa. Ví dụ: khi bạn muốn lưu trữ thông tin đăng nhập của một người cho trang web của mình

>>> numbers[:-1]
5

Nhưng khi bạn muốn lưu trữ các phần tử tương tự, như trong một mảng trong C++, bạn nên sử dụng một danh sách

>>> numbers[:-1]
6

Lưu ý rằng điều này không nói rằng một danh sách chỉ có thể chứa các giá trị đồng nhất. Ngoài ra, bạn không thể sử dụng danh sách làm khóa cho từ điển. Điều này là do chỉ các giá trị bất biến mới có thể được băm. Do đó, chúng ta chỉ có thể đặt các giá trị bất biến như bộ dữ liệu làm khóa. Nhưng nếu bạn vẫn muốn sử dụng danh sách làm khóa, trước tiên bạn phải biến nó thành bộ dữ liệu

Vì vậy, đây là tất cả về Python Tuples vs Lists. Hy vọng bạn thích lời giải thích của chúng tôi

12. Phần kết luận

Bây giờ chúng ta đã biết sự khác biệt giữa bộ dữ liệu python và danh sách, đây không phải là một lựa chọn quá khó khăn giữa hai. Sự khác biệt chính là một danh sách có thể thay đổi được, nhưng một bộ dữ liệu thì không. Vì vậy, chúng tôi sử dụng một danh sách khi chúng tôi muốn chứa các mục tương tự, nhưng sử dụng một bộ khi chúng tôi biết thông tin nào đi vào nó

Tuple có phải là một loại danh sách không?

Mặc dù cả hai loại đều là cấu trúc dữ liệu trong Python, nhưng điều quan trọng là phải làm quen với những khác biệt này khi đưa ra lựa chọn. Sự khác biệt quan trọng nhất cần lưu ý là danh sách có thể thay đổi và bộ dữ liệu thì không , danh sách có kích thước thay đổi và bộ dữ liệu có kích thước cố định.

Các phần tử danh sách có thể là bộ dữ liệu không?

Một bộ có thể chứa danh sách dưới dạng phần tử .

Bộ dữ liệu và danh sách có giống nhau không?

Xác định và sử dụng bộ dữ liệu . Các bộ dữ liệu được xác định bằng cách đặt các phần tử trong dấu ngoặc đơn [ []] thay vì dấu ngoặc vuông [ []]. Tuples là bất biến. Tuples are identical to lists in all respects, except for the following properties: Tuples are defined by enclosing the elements in parentheses [ [] ] instead of square brackets [ [] ]. Tuples are immutable.

Tại sao lại sử dụng tuple thay vì danh sách?

Bộ dữ liệu nhanh hơn danh sách. Nếu bạn đang xác định một tập giá trị không đổi và tất cả những gì bạn sẽ làm với nó là lặp qua nó, hãy sử dụng một bộ giá trị thay vì một danh sách. Nó làm cho mã của bạn an toàn hơn nếu bạn “chống ghi” dữ liệu không cần thay đổi

Chủ Đề