Hướng dẫn unpack list to tuple python - giải nén danh sách để tuple python

Tôi có một danh sách kích thước không chắc chắn:

l = [...]

Và tôi muốn giải nén danh sách này thành một tuple có các giá trị khác, nhưng dưới đây không thành công:

t = ["AA", "B", *l, "C"]

Làm thế nào để tôi hình thành như sau?

t = ["AA", "B", l[0], ..., l[:-1], "C"]

Chỉnh sửa: Thật tuyệt khi thực hiện một lát [A: B] chỉ:

t = ["AA", "B", l[a], ..., l[b], "C"]

Đã hỏi ngày 9 tháng 6 năm 2015 lúc 16:53Jun 9, 2015 at 16:53

TommytommyTommy

Huy hiệu vàng 11.6K1158 Huy hiệu bạc97 Huy hiệu đồng11 gold badges58 silver badges97 bronze badges

0

Bạn không thể giải nén thành một bộ xử lý bằng cách thay thế các giá trị như vậy [chưa - xem PEP 448], vì việc giải nén sẽ chỉ xảy ra ở biểu thức phía bên trái hoặc như thông báo lỗi nói, mục tiêu gán.

Ngoài ra, mục tiêu gán nên có các biến python hợp lệ. Trong trường hợp của bạn, bạn cũng có chữ viết theo nghĩa đen.

Nhưng bạn có thể xây dựng bộ tuple mà bạn muốn, bằng cách kết hợp ba bộ dữ

>>> l = [1, 2, 3, 4]
>>> ["A", "B"] + tuple[l[:-1]] + ["C",]
['A', 'B', 1, 2, 3, 'C']
>>> ["A", "B"] + tuple[l] + ["C",]
['A', 'B', 1, 2, 3, 4, 'C']

Đã trả lời ngày 9 tháng 6 năm 2015 lúc 16:59Jun 9, 2015 at 16:59

Thefourtheyethefourtheyethefourtheye

226K52 Huy hiệu vàng442 Huy hiệu bạc485 Huy hiệu Đồng52 gold badges442 silver badges485 bronze badges

1

Kể từ Python 3.5, bây giờ bạn có thể sử dụng phương pháp đầu tiên của mình:

>>> l = [1, 2, 3]
>>> t = ["AA", "B", *l, "C"]
>>> t
['AA', 'B', 1, 2, 3, 'C']

Bạn có thể sử dụng các lát cắt đúng như bạn mong đợi:

>>> ["AA", "B", *l[:-1], "C"]
['AA', 'B', 1, 2, 'C']

PEP liên quan, để tham khảo: PEP448

Đã trả lời ngày 11 tháng 10 năm 2017 lúc 21:03Oct 11, 2017 at 21:03

fwipfwipfwip

3253 Huy hiệu bạc5 Huy hiệu Đồng3 silver badges5 bronze badges

Bạn có thể làm phẳng danh sách và sau đó chuyển đổi thành tuple.

>>> import itertools
>>> l=[1,2,3,4]
>>> t = ['A', 'B', l, 'C']
>>> t
['A', 'B', [1, 2, 3, 4], 'C']
>>> tuple[itertools.chain.from_iterable[t]]
['A', 'B', 1, 2, 3, 4, 'C']
>>>

Đã trả lời ngày 11 tháng 6 năm 2015 lúc 19:32Jun 11, 2015 at 19:32

Chaianooshantanooshantanoo

3.5871 Huy hiệu vàng23 Huy hiệu bạc36 Huy hiệu đồng1 gold badge23 silver badges36 bronze badges

2

Trong Python, bạn có thể gán các yếu tố của một tuple hoặc liệt kê cho nhiều biến. Nó được gọi là trình tự giải nén.

  • 5. Cấu trúc dữ liệu - Tài liệu Python 3.7.4RC1

Bài viết này mô tả các nội dung sau đây.

  • Những điều cơ bản về việc giải nén một tuple và một danh sách
  • Giải nén một danh sách và danh sách lồng nhau
  • Giải nén với
    t = ["AA", "B", *l, "C"]
    
    9 [gạch dưới]
  • Giải nén với
    t = ["AA", "B", l[0], ..., l[:-1], "C"]
    
    0 [dấu hoa thị]

Nếu số lượng biến nhỏ hơn số lượng phần tử, việc thêm dấu hoa thị

t = ["AA", "B", l[0], ..., l[:-1], "C"]
0 vào tên biến sẽ gán các phần tử lại với nhau như một danh sách.

  • Nó được thực hiện trong Python 3 và không thể được sử dụng trong Python 2.

Những điều cơ bản về việc giải nén một tuple và một danh sách

Nếu bạn viết các biến ở phía bên trái được phân tách bằng dấu phẩy

t = ["AA", "B", l[0], ..., l[:-1], "C"]
3, các phần tử của một tuple hoặc danh sách ở phía bên phải được gán cho mỗi biến. Các ví dụ sau đây sử dụng các bộ dữ liệu, nhưng điều tương tự cũng đúng với danh sách.

t = [0, 1, 2]

a, b, c = t

print[a]
print[b]
print[c]
# 0
# 1
# 2

l = [0, 1, 2]

a, b, c = l

print[a]
print[b]
print[c]
# 0
# 1
# 2

Bởi vì dấu ngoặc đơn của các bộ dữ liệu có thể được bỏ qua, nhiều giá trị có thể được gán cho nhiều biến trong một dòng như sau.

  • Nhiều gán trong Python: gán nhiều giá trị hoặc cùng một giá trị cho nhiều biến

a, b = 0, 1

print[a]
print[b]
# 0
# 1

Một lỗi được nêu ra nếu số lượng biến không khớp với số lượng phần tử.

t = ["AA", "B", *l, "C"]
0

Nếu số lượng biến nhỏ hơn số lượng phần tử, có thể thêm dấu hoa thị

t = ["AA", "B", l[0], ..., l[:-1], "C"]
0 vào tên biến và gán các phần tử còn lại làm danh sách. Điều này được mô tả sau.

Giải nén một danh sách và danh sách lồng nhau

Bạn cũng có thể giải nén một tuple hoặc danh sách lồng nhau. Nếu bạn muốn mở rộng phần tử bên trong, hãy gửi lại biến với

t = ["AA", "B", l[0], ..., l[:-1], "C"]
5 hoặc
t = ["AA", "B", l[0], ..., l[:-1], "C"]
6.

t = ["AA", "B", *l, "C"]
1

Giải nén với
t = ["AA", "B", *l, "C"]
9 [gạch dưới]

Theo quy ước, các giá trị không cần thiết có thể được gán cho nhấn mạnh

t = ["AA", "B", *l, "C"]
9 trong Python. Nó không có ý nghĩa đặc biệt ngữ pháp mà chỉ được gán cho một biến có tên
t = ["AA", "B", *l, "C"]
9.

t = ["AA", "B", *l, "C"]
2

Giải nén với
t = ["AA", "B", l[0], ..., l[:-1], "C"]
0 [dấu hoa thị]

Nếu số lượng biến nhỏ hơn số lượng phần tử, việc thêm dấu hoa thị

t = ["AA", "B", l[0], ..., l[:-1], "C"]
0 vào tên biến sẽ gán các phần tử lại với nhau như một danh sách.

Nó được thực hiện trong Python 3 và không thể được sử dụng trong Python 2.

Các phần tử từ đầu và kết thúc được gán cho các biến không có

t = ["AA", "B", l[0], ..., l[:-1], "C"]
0 và các phần tử còn lại được gán làm danh sách cho các biến có
t = ["AA", "B", l[0], ..., l[:-1], "C"]
0.

t = ["AA", "B", *l, "C"]
3

Ví dụ, khi chỉ muốn gán hai yếu tố đầu tiên của một tuple hoặc danh sách cho các biến, dấu gạch dưới

t = ["AA", "B", *l, "C"]
9 có thể được sử dụng cho các bộ phận không cần thiết.

t = ["AA", "B", *l, "C"]
4

Quá trình tương tự có thể được viết như sau:

t = ["AA", "B", *l, "C"]
5

Bạn có thể thêm

t = ["AA", "B", l[0], ..., l[:-1], "C"]
0 vào chỉ một biến.

Nếu có nhiều biến với

t = ["AA", "B", l[0], ..., l[:-1], "C"]
0, không thể xác định được có bao nhiêu yếu tố được chỉ định, do đó
t = ["AA", "B", l[a], ..., l[b], "C"]
7 được nâng lên.

t = ["AA", "B", *l, "C"]
6

Lưu ý rằng ngay cả khi chỉ có một phần tử được gán cho một biến có

t = ["AA", "B", l[0], ..., l[:-1], "C"]
0, nó được gán như một danh sách.

t = ["AA", "B", *l, "C"]
7

Nếu không có các yếu tố bổ sung, một danh sách trống được gán.

t = ["AA", "B", *l, "C"]
8

Bạn có thể chuyển đổi một danh sách thành một python tuple không?

Để chuyển đổi danh sách Python thành một tuple, hãy sử dụng hàm tuple []. Tuple [] là một hàm tích hợp vượt qua danh sách như một đối số và trả về tuple. Các yếu tố danh sách sẽ không thay đổi khi nó chuyển đổi thành một tuple.use the tuple[] function. The tuple[] is a built-in function that passes the list as an argument and returns the tuple. The list elements will not change when it converts into a tuple.

Bạn có thể giải nén một danh sách như một tuple không?

Giải nén một tuple và danh sách lồng nhau.Bạn cũng có thể giải nén một tuple hoặc danh sách lồng nhau.Nếu bạn muốn mở rộng phần tử bên trong, hãy đặt biến với [] hoặc [].You can also unpack a nested tuple or list. If you want to expand the inner element, enclose the variable with [] or [] .

Làm thế nào để tôi giải nén một tuple trong một danh sách?

Bản tóm tắt.Python sử dụng dấu phẩy [,] để xác định một tuple, không phải dấu ngoặc đơn.Giải nén các bộ dữ liệu có nghĩa là gán các yếu tố riêng lẻ của một tuple cho nhiều biến.Sử dụng toán tử * để gán các phần tử còn lại của một gán giải nén vào danh sách và gán nó cho một biến.Use the * operator to assign remaining elements of an unpacking assignment into a list and assign it to a variable.

Làm thế nào để bạn giải nén một danh sách trong Python?

Bản tóm tắt.Giải nén gán các phần tử của danh sách cho nhiều biến.Sử dụng dấu hoa thị [ *] trước một biến như *biến_name này để đóng gói các phần tử còn sót lại của danh sách vào danh sách khác.Use the asterisk [*] in front of a variable like this *variable_name to pack the leftover elements of a list into another list.

Bài Viết Liên Quan

Chủ Đề