Cách trả về danh sách các bộ dữ liệu trong python

Danh sách và Tuple là các loại vùng chứa tích hợp được xác định bằng Python. Các đối tượng của cả hai loại này có thể lưu trữ các đối tượng khác có thể truy cập theo chỉ mục. Danh sách cũng như bộ dữ liệu là một kiểu dữ liệu trình tự, giống như chuỗi. Danh sách cũng như bộ dữ liệu có thể lưu trữ các đối tượng không cần cùng loại

Danh sách. Danh sách là một tập hợp các mục được sắp xếp theo thứ tự (có thể cùng loại hoặc khác loại) được phân tách bằng dấu phẩy và được đặt trong dấu ngoặc vuông

In [1]:
L1=[10,25.5,3+2j,"Hello"]
L1
Out[1]:
[10, 25.5, (3+2j), 'Hello']

Trong danh sách trên, mỗi mục thuộc loại khác nhau. Hơn nữa, mỗi mục có thể truy cập được theo chỉ mục vị trí bắt đầu từ 0. Do đó L1[2] sẽ trả về 25. 5

In [2]:
L1[1]
Out[2]:
25.5

Tuple. Tuple trông tương tự như danh sách. Sự khác biệt duy nhất là các mục được phân tách bằng dấu phẩy cùng loại hoặc khác loại được đặt trong dấu ngoặc đơn. Các mục riêng lẻ tuân theo chỉ mục dựa trên số không, như trong danh sách hoặc chuỗi

In [3]:
T1=(10,25.5,3+2j,"Hello")
T1
Out[3]:
(10, 25.5, (3+2j), 'Hello')
In [4]:
T1[1]
Out[4]:
25.5

Sự khác biệt giữa Danh sách và Tuple

Sự khác biệt rõ ràng là việc sử dụng dấu ngoặc vuông [] trong Danh sách và dấu ngoặc vuông () trong Tuple làm bao vây. Tuy nhiên, sự khác biệt quan trọng là Danh sách là một đối tượng có thể thay đổi và Tuple là một đối tượng không thể thay đổi

Nếu nội dung của một đối tượng có thể được sửa đổi tại chỗ, sau khi nó được khởi tạo, thì đó là một đối tượng có thể thay đổi. Mặt khác, bất kỳ thao tác nào trên đối tượng bất biến cố gắng sửa đổi nội dung của nó đều bị cấm

Trong ví dụ trên, bất kỳ mục nào trong danh sách L1 đều có thể được gán với giá trị khác. Hãy để chúng tôi thay đổi giá trị của mục tại index=2 từ 3+2j thành 1. 22E-5

In [5]:
L1[2]=1.22E-5
L1
Out[5]:
[10, 25.5, 1.22e-05, 'Hello']

Lớp List tích hợp có các phương thức khác nhau cho phép thực hiện các thao tác khác nhau trên đối tượng List (chẳng hạn như chèn, xóa, sắp xếp, v.v.)

Tuy nhiên, bất kỳ thao tác nào như vậy là không thể với đối tượng Tuple. Nếu chúng tôi cố gắng sửa đổi T1 bằng cách thay đổi giá trị của mục tại index=2 thành 1. 22E-5, ngoại lệ TypeError được nâng lên

In [6]:
T1[2]=1.22E-5
T1
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
 in ()
----> 1 T1[2]=1.22E-5
      2 T1
TypeError: 'tuple' object does not support item assignment

Các chức năng tích hợp sau đây có thể được sử dụng cùng với Danh sách cũng như Tuple

len()Trả về số phần tử trong danh sách/tuplemax()Nếu danh sách/bộ chứa số, số lớn nhất sẽ được trả về. Nếu danh sách/bộ chứa các chuỗi, chuỗi cuối cùng theo thứ tự bảng chữ cái sẽ được trả về. min()Nếu list/tuple chứa số, số nhỏ nhất sẽ được trả về. Nếu danh sách/bộ chứa chuỗi, chuỗi nào đến trước theo thứ tự bảng chữ cái sẽ được trả về. sum() Trả về phép cộng tất cả các phần tử trong danh sách/bộ đã sắp xếp() sắp xếp các phần tử trong danh sách/bộ _______5

Nếu các mục trong danh sách/bộ là chuỗi, hàm min() và max() trả về chuỗi đứng đầu/cuối theo thứ tự bảng chữ cái. Nếu danh sách/bộ được tạo thành từ các giá trị số và không phải số, thì ngoại lệ TypeError sẽ xuất hiện do không thể so sánh các đối tượng khác nhau

In [8]:
L2=['pen', 'book','computer', 'table', 'file']
T2=('pen', 'book','computer', 'table', 'file')
print ('max of L2', max(L2))
print ('max of T2', max(T2))
print ('min of L2', min(L2))
print ('min of T2', min(T2))
max of L2 table
max of T2 table
min of L2 book
min of T2 book
Out [9]:
L3=[100, "hundred", 0.001]
print ('max of L3', max(L3))
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
 in ()
      1 L3=[100, "hundred", 0.001]
----> 2 print ('max of L3', max(L3))

TypeError: '>' not supported between instances of 'str' and 'int'

Lớp danh sách dựng sẵn có các phương thức sau để thực hiện các thao tác khác nhau trên đối tượng danh sách. Các phương pháp sau đây cho phép thêm các mục mới vào danh sách

append() nối thêm một đối tượng vào cuối  listcopy() tạo một bản sao nông của danh sách  count() trả về số lần xuất hiện của giá trị trong listextend() mở rộng danh sách bằng cách nối thêm các phần tử từ một danh sách/tuple khác  insert()chèn đối tượng vào danh sách

Các phương pháp sau đây được sử dụng để xóa các mục khỏi danh sách đã cho

pop() xóa và trả về mục tại chỉ mục đã cho. Tăng IndexError nếu danh sách trống hoặc chỉ mục nằm ngoài phạm vi. remove() xóa giá trị xuất hiện đầu tiên trong danh sách. Tăng ValueError nếu không có giá trị. xóa () xóa tất cả các mục khỏi danh sách ____8

Các phương pháp sau sắp xếp lại thứ tự các mục trong danh sách

reverse() đảo ngược danh sách trong placesort()sắp xếp danh sách tại chỗ
In [12]:
L1=[10, 30, 30, 50, 20, 40, 11, 22]
print ('original list :', L1)
L1.reverse()
print ('after reversing:',L1)
L1.sort()
print ("sorted list: ", L1)
Out [12]:
original list : [10, 30, 30, 50, 20, 40, 11, 22]
after reversing: [22, 11, 40, 20, 50, 30, 30, 10]
sorted list:  [10, 11, 20, 22, 30, 30, 40, 50]

Nếu bạn nhớ lại, tuple là một đối tượng bất biến. Do đó lớp tuple không có các phương thức tương tự thực hiện thao tác chèn, xóa hoặc sắp xếp lại các mục

chức năng chuyển đổi

Tất cả các đối tượng kiểu chuỗi (chuỗi, danh sách và bộ dữ liệu) đều có thể chuyển đổi lẫn nhau. Các chức năng tích hợp sẵn của Python cho mục đích này được giải thích bên dưới

list() chuyển đổi một tuple hoặc chuỗi thành listtuple() chuyển đổi danh sách hoặc chuỗi thành tuplestr() trả về chuỗi biểu diễn của danh sách hoặc đối tượng tuple
In [2]:
L1[1]
Out[2]:
25.5
0

Khi một danh sách hoặc bộ được chuyển đổi thành chuỗi bằng hàm str(), biểu diễn chuỗi không hoàn toàn giống với từ, nhưng danh sách hoặc bộ được bao quanh bởi các dấu nháy đơn. Để tạo thành một dãy ký tự liên tục trong danh sách, hãy sử dụng phương thức nối () của đối tượng chuỗi

In [2]:
L1[1]
Out[2]:
25.5
1

Trong chương này, chúng ta đã thảo luận về các đối tượng list và tuple, chức năng và phương thức của chúng. Trong chương tiếp theo chúng ta sẽ tìm hiểu về kiểu dữ liệu từ điển

Làm cách nào bạn có thể lấy dạng danh sách của một giá trị tuple?

Để chuyển đổi một bộ thành danh sách trong Python, gọi hàm dựng sẵn list() và truyền bộ này làm đối số cho hàm . list() trả về một danh sách mới được tạo từ các mục của bộ dữ liệu đã cho.

Tôi có nên trả lại một tuple hoặc danh sách không?

Trả lại bất cứ điều gì mà người gọi sẽ muốn hầu hết thời gian. Nếu họ muốn có thể sắp xếp, loại bỏ hoặc xóa các mục, v.v. sau đó sử dụng danh sách. Nếu họ muốn sử dụng nó làm khóa từ điển, hãy sử dụng bộ .

Có thể trả về các bộ giá trị dưới dạng giá trị trong Python không?

Nói đúng ra, một hàm chỉ có thể trả về một giá trị, nhưng nếu giá trị đó là một bộ, thì hiệu ứng cũng giống như trả về nhiều giá trị. For example, if you want to divide two integers and compute the quotient and remainder, it is inefficient to compute x//y and then x%y .