簡體   English   中英

為什么我們必須定義變量 dp = [0] * (n+1) 只是為了將其變量設置為等於 0(在動態規划中)

[英]Why we have to define variable dp = [0] * (n+1) just to set its variable equal to 0( In Dynamic Programming)

我有一些關於某人定義的問題: dp = [0] * (n + 1)只是為了將變量設置為 0,它想做什么?

在 Python 中,您可以將列表和元組與整數n相乘。 然后它將生成一個長度為l×n的列表或元組,其中l為給定列表/元組的長度。 它將重復該集合中的元素,例如:

>>> [1,4,2,5]*3
[1, 4, 2, 5, 1, 4, 2, 5, 1, 4, 2, 5]
>>> (1,4,2,5)*3
(1, 4, 2, 5, 1, 4, 2, 5, 1, 4, 2, 5)

由於這里給定的列表是一個單例,因此您可以構造一個長度為n+1的列表,其中每個元素都是0 ,例如:

>>> [0] * (5 + 1)
[0, 0, 0, 0, 0, 0]

當您將列表/元組與整數相乘時,項目的引用將得到處理。 因此,您不會對這些值進行“深層復制”。 由於int是不可變的,這無關緊要。 但是,例如,如果元素是列表,則您沒有制作該列表的副本,而是制作了一個多次引用同一個列表的列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM