Hướng dẫn what is deep copy in python mcq? - bản sao sâu trong python mcq là gì?

Câu hỏi trắc nghiệm Python trên bản sao nông so với bản sao sâu.

1. Loại bản sao nào được hiển thị trong mã Python sau đây?

l1=[[10, 20], [30, 40], [50, 60]]
ls=list(l1)
ls
[[10, 20], [30, 40], [50, 60]]

a) copyb nông) COPYC DEEP) Thành viên Đối với bản sao sâu, lệnh được đưa ra là: l2 = l1.copy ().
b) Deep copy
c) memberwise
d) All of the mentioned
Answer: a
Clarification: The code shown above depicts shallow copy. For deep copy, the command given is: l2 = l1.copy().

2. Đầu ra của mã Python sau đây là gì?

l=[2, 3, [4, 5]]
l2=l.copy()
l2[0]=88
l
l2

một)

[88, 2, 3, [4, 5]]
[88, 2, 3, [4, 5]]

b)

[2, 3, [4, 5]]
[88, 2, 3, [4, 5]]

c)

[88, 2, 3, [4, 5]]
[2, 3, [4, 5]]

d)

[2, 3, [4, 5]]
[2, 3, [4, 5]]

Xem câu trả lời

Trả lời: Bclarization: Mã được hiển thị ở trên mô tả bản sao sâu. Trong bản sao sâu, địa chỉ cơ sở của các đối tượng không được sao chép. Do đó, việc sửa đổi được thực hiện trong một danh sách không ảnh hưởng đến danh sách khác.
Clarification: The code shown above depicts deep copy. In deep copy, the base address of the objects is not copied. Hence the modification done on one list does not affect the other list.

3. Trong _____________ Sao chép, địa chỉ cơ sở của các đối tượng được sao chép. Trong bản sao _____________, địa chỉ cơ sở của các đối tượng không được sao chép.a) sâu. nông) thành viên, nông cạn) nông, sâu) Deep, Thành viên cho bản sao nông.
a) deep. shallow
b) memberwise, shallow
c) shallow, deep
d) deep, memberwise
Answer: c
Clarification: In shallow copy, the base address of the objects are copied.
In deep copy, the base address of the objects are not copied.
Note that memberwise copy is another name for shallow copy.

4. Danh sách lồng nhau trải qua bản sao nông ngay cả khi toàn bộ danh sách trải qua bản sao sâu. Do đó, tuyên bố này là đúng.
a) True
b) False
Answer: a
Clarification: A nested list undergoes shallow copy even when the list as a whole undergoes deep copy. Hence, this statement is true.

5. Điều gì sẽ là đầu ra của mã Python sau đây và nêu loại bản sao được mô tả?

l1=[2, 4, 6, 8]
l2=[1, 2, 3]
l1=l2
l2

a) [2, 4, 6, 8], copyb nông) [2, 4, 6, 8], sao chép sâu) [1, 2, 3], sao chép nông) [1, 2, 3], sao chép sâu CCLARIZE: Mã được hiển thị ở trên mô tả bản sao nông và đầu ra của mã là: [1, 2, 3].
b) [2, 4, 6, 8], deep copy
c) [1, 2, 3], shallow copy
d) [1, 2, 3], deep copy
Answer: c
Clarification: The code shown above depicts shallow copy and the output of the code is: [1, 2, 3].

6. Đầu ra của mã Python sau đây là gì?

l1=[10, 20, 30]
l2=l1
id(l1)==id(l2)
 
l2=l1.copy()
id(l1)==id(l2)

a) Sai, falseB) false, truec) true, tried) true, falseanswer: dclarization: mã đầu tiên được hiển thị ở trên đại diện cho bản sao nông. Do đó, đầu ra của ID biểu thức (L1) == ID (L2) là đúng. Mã thứ hai mô tả bản sao sâu. Do đó, đầu ra của ID biểu thức (l1) == id (l2) trong trường hợp thứ hai là sai.
b) False, True
c) True, True
d) True, False
Answer: d
Clarification: The first code shown above represents shallow copy. Hence the output of the expression id(l1)==id(l2) is True. The second code depicts deep copy. Hence the output of the expression id(l1)==id(l2) in the second case is False.

7. Đầu ra của mã Python sau đây là gì?

l1=[1, 2, 3, [4]]
l2=list(l1)
id(l1)==id(l2)

a) TrueB) Falsec) Errrord) Địa chỉ của L1ANSWER: Bclarization: Mã được hiển thị ở trên cho thấy một danh sách lồng nhau. Một danh sách lồng nhau sẽ trải qua bản sao nông khi toàn bộ danh sách trải qua bản sao sâu. Do đó, đầu ra của mã này là sai.
b) False
c) Error
d) Address of l1
Answer: b
Clarification: The code shown above shows a nested list. A nested list will undergo shallow copy when the list as a whole undergoes deep copy. Hence the output of this code is False.

8. Đầu ra của mã Python sau đây là gì?

l1=[10, 20, 30, [40]]
l2=copy.deepcopy(l1)
l1[3][0]=90
l1
l2

một)

l=[2, 3, [4, 5]]
l2=l.copy()
l2[0]=88
l
l2
0

b)
c)

l=[2, 3, [4, 5]]
l2=l.copy()
l2[0]=88
l
l2
1

d)

l=[2, 3, [4, 5]]
l2=l.copy()
l2[0]=88
l
l2
2

Xem câu trả lời

Trả lời: Bclarization: Mã được hiển thị ở trên mô tả bản sao sâu. Trong bản sao sâu, địa chỉ cơ sở của các đối tượng không được sao chép. Do đó, việc sửa đổi được thực hiện trong một danh sách không ảnh hưởng đến danh sách khác.
Clarification: The code shown above depicts deep copy. Hence at the end of the code, l1=[10, 20, 30, [90]] and l2=[10, 20, 30, [40]].

3. Trong _____________ Sao chép, địa chỉ cơ sở của các đối tượng được sao chép. Trong bản sao _____________, địa chỉ cơ sở của các đối tượng không được sao chép.a) sâu. nông) thành viên, nông cạn) nông, sâu) Deep, Thành viên cho bản sao nông.
a) shallow, deep
b) memberwise, shallow
c) deep, shallow
d) deep, memberwise
Answer: a
Clarification: In shallow copy, the modification done on one list affects the other list. In deep copy, the modification done on one list does not affect the other list.

4. Danh sách lồng nhau trải qua bản sao nông ngay cả khi toàn bộ danh sách trải qua bản sao sâu. Do đó, tuyên bố này là đúng.

l=[2, 3, [4, 5]]
l2=l.copy()
l2[0]=88
l
l2
3

một)

l=[2, 3, [4, 5]]
l2=l.copy()
l2[0]=88
l
l2
4

b)

l=[2, 3, [4, 5]]
l2=l.copy()
l2[0]=88
l
l2
5

c)

l=[2, 3, [4, 5]]
l2=l.copy()
l2[0]=88
l
l2
6

d)

l=[2, 3, [4, 5]]
l2=l.copy()
l2[0]=88
l
l2
7

Xem câu trả lời

Trả lời: Bclarization: Mã được hiển thị ở trên mô tả bản sao sâu. Trong bản sao sâu, địa chỉ cơ sở của các đối tượng không được sao chép. Do đó, việc sửa đổi được thực hiện trong một danh sách không ảnh hưởng đến danh sách khác.
Clarification: In the code shown above, the list l1 is enclosed in a tuple. When we print this list, it is printed as [1, 2, 3, 4]. Note the absence of the tuple. The code shown depicts deep copy. Hence the output of this program is: l1=[1, 2, 3, 4] and l2=[1, 2, 3, 4].

3. Trong _____________ Sao chép, địa chỉ cơ sở của các đối tượng được sao chép. Trong bản sao _____________, địa chỉ cơ sở của các đối tượng không được sao chép.a) sâu. nông) thành viên, nông cạn) nông, sâu) Deep, Thành viên cho bản sao nông.

l=[2, 3, [4, 5]]
l2=l.copy()
l2[0]=88
l
l2
8

4. Danh sách lồng nhau trải qua bản sao nông ngay cả khi toàn bộ danh sách trải qua bản sao sâu. Do đó, tuyên bố này là đúng.
b) True
c) 1
d) An exception is thrown
Answer: a
Clarification: The above piece of code checks recursively whether a number is even or odd.

5. Điều gì sẽ là đầu ra của mã Python sau đây và nêu loại bản sao được mô tả?
a) n=0
b) n=1
c) A list of length one
d) An empty list
Answer: c
Clarification: Merge Sort algorithm implements the recursive algorithm and when the recursive function receives a list of length 1 which is the base case, the list is returned.

a) [2, 4, 6, 8], copyb nông) [2, 4, 6, 8], sao chép sâu) [1, 2, 3], sao chép nông) [1, 2, 3], sao chép sâu CCLARIZE: Mã được hiển thị ở trên mô tả bản sao nông và đầu ra của mã là: [1, 2, 3].

l=[2, 3, [4, 5]]
l2=l.copy()
l2[0]=88
l
l2
9

6. Đầu ra của mã Python sau đây là gì?
b) [5,4,3,2,1]
c) []
d) Error, lambda functions can’t be called recursively
Answer: c
Clarification: The above piece of code appends the first element of the list to a reversed sublist and reverses the list using recursion.

Một bản sao sâu trong Python là gì?

Một bản sao sâu tạo ra một đối tượng mới và thêm các bản sao của các đối tượng lồng nhau có trong các yếu tố gốc.Hãy tiếp tục với ví dụ 2. Tuy nhiên, chúng ta sẽ tạo bản sao sâu bằng hàm DeepCopy () có trong mô -đun sao chép.creates a new object and recursively adds the copies of nested objects present in the original elements. Let's continue with example 2. However, we are going to create deep copy using deepcopy() function present in copy module.

Bản sao sâu trong MCQ là gì?

Một bản sao sâu tạo ra một bản sao của các đối tượng được phân bổ động.creates a copy of the dynamically allocated objects too.

Bản sao sâu có nghĩa là gì?

Một bản sao sâu của một đối tượng là một bản sao có thuộc tính không chia sẻ cùng các tài liệu tham khảo (chỉ ra các giá trị cơ bản giống nhau) như của đối tượng nguồn mà bản sao được tạo.a copy whose properties do not share the same references (point to the same underlying values) as those of the source object from which the copy was made.

Là bản sao danh sách Python sao chép sâu?

Bản sao Python.Phương thức Copy () đã tạo một bản sao thực sự của danh sách ban đầu.Tuy nhiên, nó vẫn là một bản sao nông và các danh sách lồng nhau đề cập đến chính xác cùng một vị trí bộ nhớ.Nói cách khác, bản sao.Hàm Copy () chỉ tạo các bản sao cấp cao nhất và không sao chép các đối tượng lồng nhau.shallow copy, and the nested lists refer to exactly the same memory location. In other words, the copy. copy() function only makes top-level copies and doesn't copy nested objects.