第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

沒有反轉(zhuǎn)功能的反轉(zhuǎn)數(shù)組,但循環(huán)不起作用

沒有反轉(zhuǎn)功能的反轉(zhuǎn)數(shù)組,但循環(huán)不起作用

慕桂英3389331 2023-07-27 16:47:50
因此,我嘗試在不使用反向函數(shù)的情況下從 .txt 文件反轉(zhuǎn)數(shù)組。這就是我所擁有的。numbers = read() #creates numbers array out of the txt filenumbersrev = numbers #blank array for reversenumLength = len(numbers) #measures the length of the arrayprint(numbers)print("Array length of numbers: ", numLength)i = numLengthi = i-1 #since the array starts at 0 instead of 1k = 0for k in range(8):    numbersrev[k] = numbers[i]   print ("The ", i," element of numbers is the ", k," element of numbersrev")   i -= 1   k += 1print(numbersrev)這是我在vscode上調(diào)試后得到的結(jié)果:[2, 4, 9, 11, 8, 3, 2, 5, 10]Array length of numbers:  9The  8  element of numbers is the  0  element of numbersrevThe  7  element of numbers is the  1  element of numbersrevThe  6  element of numbers is the  2  element of numbersrevThe  5  element of numbers is the  3  element of numbersrevThe  4  element of numbers is the  4  element of numbersrevThe  3  element of numbers is the  5  element of numbersrevThe  2  element of numbers is the  6  element of numbersrevThe  1  element of numbers is the  7  element of numbersrev[10, 5, 2, 3, 8, 3, 2, 5, 10]頂部數(shù)組是原始數(shù)組,底部數(shù)組是假定的反轉(zhuǎn)數(shù)組我一生都無(wú)法找出為什么它在中途停止改變numbersrev數(shù)組。有人知道可能是什么原因嗎?
查看完整描述

4 回答

?
守候你守候我

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超10個(gè)贊

好吧,有幾件事...


首先,for 循環(huán)在 python 中自動(dòng)增加它們的變量。

所以:


for k in range(8):

    ...

    i -= 1

    k += 1

應(yīng)該:


for k in range(8):

    ...

    i -= 1

無(wú)需手動(dòng)增加 k。


接下來(lái)的列表不是數(shù)組。

python 中的列表與 C 等語(yǔ)言中的數(shù)組有很大不同。列表是可變的,并且默認(rèn)情況下通過(guò)引用傳遞。所以當(dāng)你嘗試創(chuàng)建一個(gè)空數(shù)組時(shí):


numbersrev = numbers #blank array for reverse

您實(shí)際上numbers是從AND引用相同的“列表”numbersrev


你應(yīng)該做的是numbersrev = []


然后在 for 循環(huán)中,只需附加到 numberrev 而不是分配。


for k in range(numLength):

    numbersrev.append(numbers[i])

    print ("The ", i," element of numbers is the ", k," element of numbersrev")

    i -= 1

最后

你可以/應(yīng)該在 for 循環(huán)中引用數(shù)字的長(zhǎng)度而不是硬編碼的值,但是你如何擁有它仍然有效(假設(shè)你只得到8個(gè)數(shù)字)


for k in range(numLength):

    ...

全部一起

numbers = read() #creates numbers array out of the txt file

numbersrev = [] #blank array for reverse

numLength = len(numbers) #measures the length of the array 


print(numbers)


print("Array length of numbers: ", numLength)



i = numLength


i = i-1 #since the array starts at 0 instead of 1


for k in range(numLength):

    numbersrev.append(numbers[i])

    print ("The ", i," element of numbers is the ", k," element of numbersrev")

    i -= 1


print(numbersrev)


查看完整回答
反對(duì) 回復(fù) 2023-07-27
?
慕標(biāo)琳琳

TA貢獻(xiàn)1830條經(jīng)驗(yàn) 獲得超9個(gè)贊

您在這里所做的就是使用以下行將反轉(zhuǎn)數(shù)組指定為普通數(shù)組:


numbersrev = numbers #blank array for reverse

您實(shí)際上對(duì)該循環(huán)所做的事情是這樣的:


numbers[0] = numbers[9] # [10, 2, 3, 4, 5, 6, 7, 8, 9, 10]

numbers[1] = numbers[8] # [10, 9, 3, 4, 5, 6, 7, 8, 9, 10]

numbers[2] = numbers[7] # [10, 9, 8, 4, 5, 6, 7, 8, 9, 10]

numbers[3] = numbers[6] # [10, 9, 8, 7, 5, 6, 7, 8, 9, 10]

numbers[4] = numbers[5] # [10, 9, 8, 7, 6, 6, 7, 8, 9, 10]

numbers[5] = numbers[4] # [10, 9, 8, 7, 6, 6, 7, 8, 9, 10]

numbers[6] = numbers[3] # [10, 9, 8, 7, 6, 6, 7, 8, 9, 10]

numbers[7] = numbers[2] # [10, 9, 8, 7, 6, 6, 7, 8, 9, 10]

numbers[8] = numbers[1] # [10, 9, 8, 7, 6, 6, 7, 8, 9, 10]

numbers[9] = numbers[0] # [10, 9, 8, 7, 6, 6, 7, 8, 9, 10]

...

如果您像這樣分配變量:


numLength = len(numbers) #measures the length of the array 

numbersrev = [0]*numLength #blank array for reverse

您將得到正確的答案,因?yàn)榉聪蛄斜聿辉僦赶蛘A斜怼?/p>


查看完整回答
反對(duì) 回復(fù) 2023-07-27
?
慕斯709654

TA貢獻(xiàn)1840條經(jīng)驗(yàn) 獲得超5個(gè)贊

你面臨的問(wèn)題是因?yàn)檫@條線


numbersrev = numbers #blank array for reverse

在這一行中,您不是創(chuàng)建空數(shù)組,而是將numbers數(shù)組的引用保存在名為 的新變量中numbersrev。這意味著當(dāng)您在數(shù)組中進(jìn)行操作時(shí),numbersrev您也會(huì)更改 的值numbers。為了避免此類問(wèn)題,您有兩種選擇:


使用切片制作數(shù)組的副本


通過(guò)這種方式,您可以復(fù)制數(shù)組的值,而不是數(shù)組的引用。這意味著您對(duì)新數(shù)組所做的更改不會(huì)更改原始數(shù)組。


numbersrev = numbers[:]

創(chuàng)建一個(gè)空數(shù)組并使用追加而不是賦值


此更改與您所做的略有不同,但基本上您不是創(chuàng)建數(shù)組的副本,而是創(chuàng)建一個(gè)新數(shù)組,該數(shù)組將填充到 for 循環(huán)中,如下所示:


numbers.rev = []

...

for k in range(8):

    numbersrev.append(numbers[i])

因此,使用第一個(gè)選項(xiàng)并更改 k 索引中的一些內(nèi)容,我們有這樣的代碼:


numbers = [2, 4, 9, 11, 8, 3, 2, 5, 10] # you can change for read

numbersrev = numbers[:] #copy array elements

numLength = len(numbers) #array length


print(numbers)

print("Array length of numbers: ", numLength)


i = numLength - 1


# you don't need to initialize k because it's initialized and incremented with range in the loop

for k in range(numLength):

    numbersrev[k] = numbers[i]

    print ("The ", i," element of numbers is the ", k," element of numbersrev")

    i -= 1


print(numbersrev)

希望這能幫助你解決問(wèn)題,就像注釋一樣,你可以通過(guò)多種方式解決這個(gè)問(wèn)題:切片(numbers[::-1])、列表理解和其他一些。所有方法都是有效的,以防萬(wàn)一您想探索更多。


查看完整回答
反對(duì) 回復(fù) 2023-07-27
?
搖曳的薔薇

TA貢獻(xiàn)1793條經(jīng)驗(yàn) 獲得超6個(gè)贊

numbersrev = numbers設(shè)置numbersrev為指向與 相同的列表numbers,這意味著當(dāng)您修改numbersnumbersrev同時(shí)修改另一個(gè)列表時(shí)。要制作對(duì)象的實(shí)際副本,您需要調(diào)用numbersrev = numbers.copy(). 另外,@sahasrara62的評(píng)論是正確的,你需要打電話for k in range(numLength)而不是for k in range(8)



查看完整回答
反對(duì) 回復(fù) 2023-07-27
  • 4 回答
  • 0 關(guān)注
  • 186 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)