Python khai báo nhiều mảng trong một dòng

Bản tóm tắt. Để khởi tạo nhiều biến thành cùng một giá trị trong Python, bạn có thể sử dụng một trong các cách tiếp cận sau

  • Sử dụng đẳng thức xiềng xích như.
    x = y = z = 100
    print[x]
    print[y]
    print[z]
    print["All variables point to the same memory location:"]
    print[id[x]]
    print[id[y]]
    print[id[z]]
    7
  • Sử dụng
    x = y = z = 100
    print[x]
    print[y]
    print[z]
    print["All variables point to the same memory location:"]
    print[id[x]]
    print[id[y]]
    print[id[z]]
    8

Bài viết này sẽ hướng dẫn bạn cách gán nhiều biến có cùng giá trị trong Python. Còn chần chừ gì nữa, hãy cùng chúng tôi đi sâu vào giải pháp ngay

Phương pháp 1. Sử dụng chuỗi bình đẳng

Bạn có thể sử dụng các đẳng thức chuỗi để khai báo các biến và sau đó gán cho chúng giá trị cần thiết

Syntax: variable_1 = variable_2 = variable_3 = value 

Mã số

x = y = z = 100
print[x]
print[y]
print[z]
print["All variables point to the same memory location:"]
print[id[x]]
print[id[y]]
print[id[z]]

đầu ra

100
100
100
All variables point to the same memory location:
3076786312656
3076786312656
3076786312656

Rõ ràng từ đầu ra ở trên, mỗi biến đã được gán cùng một giá trị và mỗi biến trỏ đến cùng một vị trí bộ nhớ

Phương pháp 2. Sử dụng chính tả. từ khóa

Cách tiếp cận. Sử dụng phương pháp

x = y = z = 100
print[x]
print[y]
print[z]
print["All variables point to the same memory location:"]
print[id[x]]
print[id[y]]
print[id[z]]
9 để đặt một giá trị cụ thể [_______40] cho danh sách các biến [
100
100
100
All variables point to the same memory location:
3076786312656
3076786312656
3076786312656
1]

Mã số

________số 8

đầu ra

x = 100
ID of x = 2577372054896
y = 100
ID of y = 2577372693360
z = 100
ID of z = 2577380842864

Thảo luận. Rõ ràng từ đầu ra ở trên, mỗi biến được gán giữ cùng một giá trị. Tuy nhiên, mỗi biến chiếm một vị trí bộ nhớ khác nhau. Điều này là do mỗi biến hoạt động như một khóa của từ điển và mỗi khóa trong từ điển là duy nhất. Do đó, những thay đổi đối với một biến cụ thể sẽ không ảnh hưởng đến biến khác như hình bên dưới

x = y = z = 100
print[x]
print[y]
print[z]
print["All variables point to the same memory location:"]
print[id[x]]
print[id[y]]
print[id[z]]
0

đầu ra

x = y = z = 100
print[x]
print[y]
print[z]
print["All variables point to the same memory location:"]
print[id[x]]
print[id[y]]
print[id[z]]
1

Đọc khái niệm

100
100
100
All variables point to the same memory location:
3076786312656
3076786312656
3076786312656
2 là một phương thức từ điển trả về một từ điển dựa trên các khóa và giá trị được chỉ định được truyền bên trong nó dưới dạng tham số.

Cú pháp.
100
100
100
All variables point to the same memory location:
3076786312656
3076786312656
3076786312656
3
➡ keys là tham số bắt buộc đại diện cho một lần lặp chứa các khóa của từ điển mới.
➡ giá trị là một tham số tùy chọn đại diện cho các giá trị cho tất cả các khóa trong từ điển mới. Theo mặc định, nó là
100
100
100
All variables point to the same memory location:
3076786312656
3076786312656
3076786312656
4.

Thí dụ

x = y = z = 100
print[x]
print[y]
print[z]
print["All variables point to the same memory location:"]
print[id[x]]
print[id[y]]
print[id[z]]
5

câu hỏi liên quan

Hãy giải quyết một câu hỏi thường gặp khiến nhiều lập trình viên gặp rắc rối

Vấn đề. Tôi đã cố gắng sử dụng nhiều phép gán như hiển thị bên dưới để khởi tạo các biến, nhưng tôi bị nhầm lẫn bởi hành vi này, tôi muốn gán lại danh sách giá trị một cách riêng biệt, ý tôi là b[0] và c[0] bằng 0 như trước đây

x = y = z = 100
print[x]
print[y]
print[z]
print["All variables point to the same memory location:"]
print[id[x]]
print[id[y]]
print[id[z]]
6

đầu ra

x = y = z = 100
print[x]
print[y]
print[z]
print["All variables point to the same memory location:"]
print[id[x]]
print[id[y]]
print[id[z]]
7

Nhưng, tại sao nhiệm vụ sau đây lại dẫn đến một hành vi khác?

x = y = z = 100
print[x]
print[y]
print[z]
print["All variables point to the same memory location:"]
print[id[x]]
print[id[y]]
print[id[z]]
0

đầu ra

x = y = z = 100
print[x]
print[y]
print[z]
print["All variables point to the same memory location:"]
print[id[x]]
print[id[y]]
print[id[z]]
1

Nguồn câu hỏi. StackOverflow

Dung dịch

Hãy nhớ rằng mọi thứ trong Python được coi là một đối tượng. Vì vậy, khi bạn xâu chuỗi nhiều biến như trong trường hợp trên, tất cả chúng đều đề cập đến cùng một đối tượng. Điều này có nghĩa là,

100
100
100
All variables point to the same memory location:
3076786312656
3076786312656
3076786312656
5 ,
100
100
100
All variables point to the same memory location:
3076786312656
3076786312656
3076786312656
6 và
100
100
100
All variables point to the same memory location:
3076786312656
3076786312656
3076786312656
7 không phải là các biến khác nhau có cùng giá trị thay vì chúng là các tên khác nhau được đặt cho cùng một đối tượng

Như vậy, trong trường hợp đầu tiên khi bạn thực hiện thay đổi tại một chỉ số nào đó của biến a, i. e, a[0] = 1. Điều này có nghĩa là bạn đang thực hiện các thay đổi đối với cùng một đối tượng cũng có tên b và c. Do đó, những thay đổi được phản ánh cho cả b và c cùng với a

xác minh

x = y = z = 100
print[x]
print[y]
print[z]
print["All variables point to the same memory location:"]
print[id[x]]
print[id[y]]
print[id[z]]
2

Để tạo một đối tượng mới và gán nó, bạn phải sử dụng mô-đun sao chép như hình bên dưới

x = y = z = 100
print[x]
print[y]
print[z]
print["All variables point to the same memory location:"]
print[id[x]]
print[id[y]]
print[id[z]]
3

đầu ra

x = y = z = 100
print[x]
print[y]
print[z]
print["All variables point to the same memory location:"]
print[id[x]]
print[id[y]]
print[id[z]]
4

Tuy nhiên, trong trường hợp thứ hai, bạn đang ràng buộc lại một giá trị khác cho biến

100
100
100
All variables point to the same memory location:
3076786312656
3076786312656
3076786312656
5. Điều này có nghĩa là bạn đang thay đổi nó tại chỗ và điều đó dẫn đến việc trỏ đến một giá trị hoàn toàn khác ở một vị trí khác. Ở đây, giá trị được thay đổi là một số nguyên và số nguyên là bất biến

Làm theo hình minh họa đã cho để hình dung những gì đang xảy ra trong trường hợp này

xác minh

x = y = z = 100
print[x]
print[y]
print[z]
print["All variables point to the same memory location:"]
print[id[x]]
print[id[y]]
print[id[z]]
5

đầu ra

x = y = z = 100
print[x]
print[y]
print[z]
print["All variables point to the same memory location:"]
print[id[x]]
print[id[y]]
print[id[z]]
6

Rõ ràng là sau khi liên kết lại một giá trị mới với biến

100
100
100
All variables point to the same memory location:
3076786312656
3076786312656
3076786312656
5, nó trỏ đến một vị trí bộ nhớ khác, do đó bây giờ nó đề cập đến một đối tượng khác. Do đó, thay đổi giá trị của
100
100
100
All variables point to the same memory location:
3076786312656
3076786312656
3076786312656
5 trong trường hợp này có nghĩa là chúng ta đang tạo một đối tượng mới mà không chạm vào đối tượng đã tạo trước đó được tham chiếu bởi
100
100
100
All variables point to the same memory location:
3076786312656
3076786312656
3076786312656
5,
100
100
100
All variables point to the same memory location:
3076786312656
3076786312656
3076786312656
6 và
100
100
100
All variables point to the same memory location:
3076786312656
3076786312656
3076786312656
7

Sách Python One-Liners. Làm chủ một dòng đầu tiên

Các lập trình viên Python sẽ cải thiện các kỹ năng khoa học máy tính của họ với những lời khuyên hữu ích này

Python One-Liners sẽ dạy bạn cách đọc và viết "one-liners". tuyên bố ngắn gọn về chức năng hữu ích được gói gọn trong một dòng mã. Bạn sẽ học cách giải nén một cách có hệ thống và hiểu bất kỳ dòng mã Python nào, đồng thời viết Python được nén mạnh mẽ, hùng hồn như một chuyên gia

Năm chương của cuốn sách bao gồm [1] mẹo và thủ thuật, [2] biểu thức chính quy, [3] học máy, [4] chủ đề khoa học dữ liệu cốt lõi và [5] thuật toán hữu ích

Giải thích chi tiết về một lớp lót giới thiệu các khái niệm khoa học máy tính chính và nâng cao kỹ năng viết mã và phân tích của bạn. Bạn sẽ tìm hiểu về các tính năng nâng cao của Python chẳng hạn như hiểu danh sách, cắt, hàm lambda, biểu thức chính quy, hàm bản đồ và thu gọn và phân công lát

Bạn cũng sẽ học cách

  • Tận dụng cấu trúc dữ liệu để giải quyết các vấn đề trong thế giới thực, chẳng hạn như sử dụng lập chỉ mục Boolean để tìm các thành phố có mức độ ô nhiễm trên trung bình
  • Sử dụng các thông tin cơ bản về NumPy chẳng hạn như mảng, hình dạng, trục, loại, truyền phát, lập chỉ mục nâng cao, cắt, sắp xếp, tìm kiếm, tổng hợp và thống kê
  • Tính thống kê cơ bản của mảng dữ liệu đa chiều và thuật toán K-Means cho học không giám sát
  • Tạo nhiều biểu thức chính quy nâng cao bằng cách sử dụng nhóm và nhóm được đặt tên, giao diện phủ định, ký tự thoát, khoảng trắng, bộ ký tự [và bộ ký tự phủ định] và toán tử tham lam/không tham lam
  • Hiểu nhiều chủ đề khoa học máy tính, bao gồm đảo chữ cái, bảng chữ cái, bộ siêu, hoán vị, giai thừa, số nguyên tố, số Fibonacci, làm rối, tìm kiếm và sắp xếp theo thuật toán

Đến cuối cuốn sách, bạn sẽ biết cách viết Python ở mức tinh tế nhất và tạo ra những tác phẩm “nghệ thuật Python” ngắn gọn, đẹp mắt chỉ trong một dòng

Nhận Python One-Liners của bạn trên Amazon

Shubham Sayon

Tôi là một người tạo nội dung và Blogger Python chuyên nghiệp. Tôi đã xuất bản nhiều bài báo và tạo các khóa học trong một khoảng thời gian. Hiện tại tôi đang làm việc với tư cách là một freelancer toàn thời gian và tôi có kinh nghiệm trong các lĩnh vực như Python, AWS, DevOps và Networking

Chủ Đề