Sửa đổi giá trị dict Python

00. 00 Xin chào. Trong video này, chúng ta sẽ xem qua phần thứ ba trong danh sách mục lục này của tôi. cách sửa đổi các giá trị trong từ điển trong khi lặp qua nó

00. 09 Điều này sẽ mở rộng kiến ​​thức của chúng ta từ cách nhìn mọi thứ trong từ điển đến cách thực hiện các thao tác phức tạp, hiệu quả trên từ điển khi bạn lướt qua chúng

00. 19 Hãy chuyển sang thiết bị đầu cuối và tôi sẽ định nghĩa một từ điển nhỏ ở đây để làm ví dụ cho chúng ta. Và ý tưởng sẽ là nó sẽ là một số loại trái cây, và sau đó là một số giá bằng xu hoặc một phần nhỏ của đô la. Và, bạn biết đấy, bạn có thể tưởng tượng rằng nếu bạn là người có một cửa hàng, bạn có thể muốn theo dõi các loại trái cây của mình và giá của chúng theo cách này

00. 42 Vì vậy, ở đây chúng tôi có từ điển

for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
1 của chúng tôi. Hãy đổi tên nó. Hãy gọi nó là
for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
2, và bây giờ chúng ta sẽ làm việc với
for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
3

00. 51 Vì vậy, điều đó sẽ đơn giản hơn một chút và dễ hiểu hơn một chút. Bắt đầu sao lưu,

for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
3. Tuyệt quá. Ví dụ, hãy tưởng tượng bạn có cửa hàng và nền kinh tế đang hoạt động không tốt lắm, hoặc có thể nó đang hoạt động rất tốt và bạn có thể tính thêm 10 xu cho mỗi loại trái cây. Vì vậy, làm thế nào bạn sẽ làm điều đó?

01. 11 Bạn sẽ nói

for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
1 và sau đó
for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
3 tại
for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
3 bằng với những gì nó đã có,

01. 18

for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
4, cộng với
for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
5. Vì vậy, chúng tôi đang tăng mỗi giá thêm 10 xu. Và điều này sẽ làm gì nếu chúng ta nhìn vào
for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
3? . Điều này là do cách các số dấu phẩy động được lưu trữ trong Python

01. 38 Đôi khi họ có thể hơi khó tính một chút. Nhưng dù sao đi nữa, rõ ràng những gì chúng tôi đã làm là chúng tôi đã thêm 10 xu vào mỗi giá ban đầu của mình. Vì vậy, điều này thật tuyệt và đây thực sự là mô hình bạn nên sử dụng khi bạn muốn sửa đổi các giá trị trong từ điển bất kỳ lúc nào

01. 53 Gần như bạn sẽ luôn phải sử dụng mô hình khóa và sau đó truy cập từ điển gốc ở khóa đó. Bây giờ, bạn có thể đang nghĩ “Chà, chúng ta đã học được tất cả những cách thú vị này để tra từ điển và nhìn mọi thứ theo cách dễ dàng hơn. ” Bạn biết đấy, chúng ta có thể gán tên cho khóa và giá trị, sau đó chúng ta có thể in chúng ra và làm mọi thứ với chúng. Vì vậy, bạn có thể nói, “Chà, tại sao tôi không làm

for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
7
for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
8. ” Hoặc giả sử là
for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
9, để rõ ràng hơn điều gì sẽ xảy ra

02. 24 Nhưng điều này không thực sự diễn ra theo cách mà bạn có thể hy vọng. Hãy xem

for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
3 là gì. Ồ, nó giống hệt như lần cuối cùng chúng ta nhìn vào nó. Chà, điều đó hơi kỳ lạ, bởi vì chúng tôi đã trải qua và lặp đi lặp lại

02. 36 Và rõ ràng, nếu bạn đi qua và bạn nói điều này, bạn nói

02. 41

for tuple in prices.items[]:
    key, value = tuple
    value = value + 0.2
1, sau đó chúng tôi nhận được tất cả các mặt hàng này. Vì vậy, chúng tôi rõ ràng có quyền truy cập vào chúng theo một nghĩa nào đó. Nhưng chúng ta không thể sửa đổi chúng theo cùng một cách. Chà, tại sao lại thế này?

02. 56 Và nếu chúng ta nhìn vào nó, nó là một vật thể

for tuple in prices.items[]:
    key, value = tuple
    value = value + 0.2
3. Và điều này thực sự có nghĩa là nó là một đối tượng cụ thể được thiết kế để hiển thị cho bạn nội dung trong từ điển mà không thực sự cấp cho bạn quyền truy cập vào từ điển này

03. 09 Và điều đó thực sự hữu ích khi bạn thiết kế các ứng dụng lớn, bởi vì nếu bạn đang làm việc với các lập trình viên khác và các gói phần mềm khác, thì bạn có thể cấp cho người khác quyền xem nội dung trong từ điển. Họ có thể xem dữ liệu của bạn nhưng không thể sửa đổi dữ liệu đó

03. 24 Và bạn có thể tưởng tượng ra nhiều kịch bản khác nhau trong đó điều này có thể thực sự, thực sự hữu ích cho bạn với tư cách là một nhà phát triển. Vì vậy, hãy ghi nhớ điều đó khi bạn đang cố sửa đổi các giá trị của từ điển

03. 32 Bạn thực sự cần truy cập từ điển gốc bằng cách sử dụng khóa. Nếu không, bạn sẽ không thực sự có thể thay đổi mọi thứ. Bạn sẽ chỉ có thể xem chúng, thậm chí có thể sao chép chúng, nhưng bạn sẽ không thể thay đổi chúng

03. 43 Vì vậy, bước tiếp theo của chúng ta là làm cách nào để sửa đổi các phím trong từ điển?

03. 56 Bạn chỉ cần đặt bằng tay. Và điều này hoạt động rất tốt, chúng tôi đã thêm

for tuple in prices.items[]:
    key, value = tuple
    value = value + 0.2
4. Nó có giá là
for tuple in prices.items[]:
    key, value = tuple
    value = value + 0.2
5, chúng khá đắt. Nhưng bạn phải làm điều này bằng tay, phải không?

04. 06 Và có thể bạn có một danh sách mà bạn muốn lặp lại và bạn có thể thêm danh sách đó vào danh sách. Nhưng có một số trường hợp mà bạn có thể cảm thấy những gì bạn muốn làm là nói điều gì đó như thế này,

for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
1 và sau đó bạn có thể muốn bắt đầu cộng và trừ từ từ điển khi bạn thực hiện các phím khác nhau, phải không?

04. 23 Và tôi đã không đề cập đến cách xóa khóa là bạn sử dụng từ khóa

for tuple in prices.items[]:
    key, value = tuple
    value = value + 0.2
7 [xóa] có sẵn trong Python này. Nhưng hãy xem điều gì sẽ xảy ra khi chúng ta làm điều này trong một vòng lặp

04. 34 bùng nổ. Chúng tôi nhận được một

for tuple in prices.items[]:
    key, value = tuple
    value = value + 0.2
8. Và tôi nghĩ cách tốt nhất để giải thích chính xác tại sao điều này lại xảy ra là nghĩ về nó theo cách tương tự với một người hoặc một nhóm người thực, phải không? . ” Nhưng sau đó khi bạn đang làm điều đó, đi qua những loại trái cây này, họ bắt đầu ném thêm trái cây vào thùng và lấy một số trong số chúng ra trước khi bạn có thể dán nhãn lên chúng. Điều đó không hiệu quả, phải không?

05. 01 Nó không có ý nghĩa gì cả. Điều đó thậm chí có nghĩa gì khi nói

for tuple in prices.items[]:
    key, value = tuple
    value = value + 0.2
9 khi
for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
3 liên tục thay đổi?

05. 15 Tuy nhiên, nếu bạn thực sự cần phải làm điều đó, điều bạn có thể làm là bạn có thể nói

for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
61. Vì vậy, bạn có thể chuyển đổi chúng thành
for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
62, sau đó bạn có thể nói
for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
3 tại, tôi không biết—bạn có thể lặp và đồng thời cộng và trừ từ từ điển theo bất kỳ cách nào bạn muốn. Đúng?

05. 42 Và vì vậy chúng tôi có

for tuple in prices.items[]:
    key, value = tuple
    value = value + 0.2
4 tại
for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
66 và không có lỗi. Và trên thực tế, tất nhiên, đây không phải là điều bạn thực sự muốn làm, bởi vì không cần phải lặp lại ở đây

05. 51 Nhưng bạn có thể nghĩ đến các ứng dụng khác phức tạp hơn khi nguyên tắc tương tự xảy ra. Tuy nhiên, một điều cần lưu ý là việc chuyển đổi nó thành danh sách sẽ sử dụng nhiều bộ nhớ hơn, bởi vì

for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
67 này, nó nhận từng khóa một từ từ điển, trong khi chuyển đổi nó thành danh sách giúp bạn truy cập tất cả các khóa này và đặt

06. 10 Vì vậy, nếu bạn đang làm điều này với một lượng dữ liệu khổng lồ, nó có thể không lý tưởng. Vì vậy, chúng tôi đã giới thiệu cách sửa đổi các giá trị trong từ điển và cách sửa đổi các khóa trong từ điển, đồng thời chúng tôi cũng đã đề cập đến một số cạm bẫy phổ biến có thể dẫn đến sai sót

06. 24 Điểm mấu chốt ở đây là khi bạn muốn sửa đổi các giá trị, bạn nhất thiết phải tương tác với từ điển gốc. Nếu bạn không, thì bạn sẽ không thực sự nhận được bất kỳ kết quả nào

06. 37 Vì vậy, chúng tôi sẽ làm một cái gì đó như thế này, và sau đó chúng tôi sẽ nhận được

for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
3, và tất cả chúng đã được đổi thành
for tuple in prices.items[]:
    key, value = tuple
    value = value + 0.2
5, phải không? .
for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
3 tại
for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
21, đó là một loại trái cây, bằng với
for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
22

06. 56 Việc sửa đổi các phím theo cách này luôn an toàn hơn là cố gắng thực hiện chúng theo vòng lặp. Và nếu bạn cần thực hiện chúng trong một vòng lặp và bạn cần thay đổi các phím khi thực hiện, trước tiên hãy chuyển đổi nó thành một danh sách

07. 08 Vì vậy. Đó là cách thay đổi và sửa đổi các khóa và giá trị trong từ điển trong phép lặp

Kiran vào tháng 12. 29, 2019

Sửa đổi các khóa trong từ điển không có gì khác ngoài việc thêm các khóa mới nhưng không cập nhật bất kỳ khóa hiện có nào. Có đúng không?

Liam Pulsifer Nhóm RP vào tháng 12. 30, 2019

@Kiran chắc chắn rồi, tôi cho rằng điều đó hợp lý. Tôi đã sử dụng "sửa đổi khóa" để chỉ việc thêm hoặc xóa các khóa vì Python không cung cấp thao tác rõ ràng [mà tôi biết] để sửa đổi các khóa trong từ điển, ngoài việc xóa một khóa và thêm một khóa khác

mikesult vào ngày 5 tháng 5 năm 2020

Có nghĩa là bạn không thể "sửa đổi" một khóa vì nó là bất biến. Vì vậy, chỉ cần xóa cái cũ và thêm cái mới nếu bạn cần thay đổi khóa

for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
4

Ngoài ra, việc cố gắng cập nhật 'giá trị' không hoạt động vì khóa và giá trị là một phần của bộ giá trị bất biến. Tôi hơi ngạc nhiên khi nó không báo lỗi

for key, value in prices.items[]:
    value = value + 0.2
# no change in prices

Liam Pulsifer Nhóm RP vào ngày 6 tháng 5 năm 2020

@mikesult đây là những trực giác tuyệt vời mà bạn đang phát triển, đặc biệt là về các khóa từ điển. Tôi muốn nhanh chóng làm rõ điều gì đó về nhận xét của bạn về việc cập nhật giá trị - lý do mà việc cố gắng cập nhật giá trị theo cách bạn trình bày không mang lại hiệu quả mà còn không gây ra lỗi là vì về cơ bản, có vẻ như thế này

for tuple in prices.items[]:
    key, value = tuple
    value = value + 0.2

Vì vậy, trong thực tế, bạn không cố sửa đổi bộ dữ liệu. Những gì bạn đang thực sự sửa đổi chỉ đơn giản là một biến mới

for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
23 có cùng giá trị với phần tử tương ứng của bộ dữ liệu. Tất nhiên, điều đó không liên quan gì đến “giá trị” thực nằm trong từ điển. Mặt khác, nếu bạn cố gắng làm điều này

for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
6

bạn sẽ gặp lỗi khi cố gán cho một bộ. Tôi hy vọng những sự tinh tế này có ý nghĩa

mikesult vào ngày 6 tháng 5 năm 2020

lời giải thích hoàn hảo. Cảm ơn

yasserkgl vào ngày 25 tháng 5 năm 2020

xin chào tôi có thông báo lỗi dưới đây

for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
2

đầu ra

for key, value in prices.items[]:
    value = value + 0.2
# no change in prices
0

jaosunita vào ngày 5 tháng 6 năm 2020

@yasserkgl, dấu nháy đơn trong '4' phải được loại bỏ. Trân trọng

Liam Pulsifer Nhóm RP vào ngày 5 tháng 6 năm 2020

Câu hỏi hay @yasserkgl và câu trả lời hay @jaosunita

naomifos vào ngày 22 tháng 3 năm 2021

Xin chào, tôi đang tự hỏi bạn sẽ làm gì nếu bạn có, chẳng hạn như một danh sách từ điển và chức năng của bạn đang tìm kiếm một khóa cụ thể. Làm cách nào bạn có thể chỉ cần thêm các giá trị của khóa nhất định đó và trả về?

Bạn có thể chỉnh sửa một giá trị trong từ điển Python không?

Các giá trị của Từ điển Python có thể được cập nhật bằng hai cách sau i. e. bằng cách sử dụng phương thức update[] và đồng thời, sử dụng dấu ngoặc vuông . Từ điển đại diện cho cặp khóa-giá trị trong Python, được đặt trong dấu ngoặc nhọn. Các khóa là duy nhất và dấu hai chấm phân tách nó khỏi giá trị, trong khi dấu phẩy phân tách các mục.

Có thể thay đổi giá trị trong từ điển không?

Thay đổi thành phần trong từ điển . Để sửa đổi nhiều giá trị cùng một lúc, chúng ta có thể sử dụng. update[], vì hàm này ghi đè lên các khóa hiện có. We can change the value of an item by accessing the key using square brackets [[]]. To modify multiple values at once, we can use the . update[] method, since this function overwrites existing keys.

Bạn có thể sửa đổi khóa từ điển bằng Python không?

dict không có phương pháp nào để thay đổi khóa , vì vậy hãy thêm một mục mới với khóa mới và giá trị ban đầu, sau đó xóa mục cũ.

Chúng tôi có thể sửa đổi các khóa của từ điển không?

Vì khóa là thứ mà từ điển sử dụng để tra cứu giá trị nên bạn thực sự không thể thay đổi chúng . Điều gần nhất bạn có thể làm là lưu giá trị được liên kết với khóa cũ, xóa nó, sau đó thêm mục nhập mới bằng khóa thay thế và giá trị đã lưu.

Chủ Đề