Hướng dẫn python unpack list into tuple - python giải nén danh sách thành tuple

10

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

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

11.7K11 Huy hiệu vàng58 Huy hiệu bạc98 Huy hiệu đồng11 gold badges58 silver badges98 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àng443 Huy hiệu bạc486 Huy hiệu Đồng52 gold badges443 silver badges486 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

Làm cách nào để chuyển đổi danh sách thành một tuple trong Python?

  • 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ị]

Xem bài viết sau đây cho trường hợp giải nén các bộ dữ liệu, danh sách và từ điển [

t = ["AA", "B", l[0], ..., l[:-1], "C"]
1] là đối số với
t = ["AA", "B", l[0], ..., l[:-1], "C"]
0 [dấu hoa thị].

  • Giải nén và vượt qua danh sách

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

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

Làm cách nào để chuyển đổi danh sách thành một tuple trong Python?

Nếu bạn muốn chuyển đổi danh sách Python thành Tuple, bạn có thể sử dụng hàm tuple [] để chuyển danh sách đầy đủ dưới dạng đối số và nó sẽ trả về kiểu dữ liệu Tuple dưới dạng đầu ra.use the tuple[] function to pass the full list as an argument, and it will return the tuple data type as an output.

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

Trong Python, việc giải nén không chỉ giới hạn ở các bộ dữ liệu. Bạn có thể giải nén một danh sách hoặc một chuỗi có cùng cú pháp. Giải nén thường được gọi là nhiều gán, vì nó nhắc nhở về việc gán nhiều biến trên cùng một dòng.You can unpack a list or a string with the same syntax. Unpacking is more commonly known as multiple assignment, as it reminds of assigning multiple variables on the same line.

Làm cách nào để giải nén một danh sách các bộ dữ liệu trong Python?

Những điều cơ bản của 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, 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.....
Giải nén với _ [nhấn mạnh] theo quy ước, các giá trị không cần thiết có thể được gán cho nhấn mạnh _ trong Python.....
Giải nén với * [dấu hoa thị].

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ủ Đề