久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python兩個(gè)list互換,兩種不同的操作結(jié)果有差異,原因是什么呢?

瀏覽:105日期:2022-06-30 10:15:28

問(wèn)題描述

a=[1,1,1,1,1,1,1,1,1]b=[0,0,0,0,0,0,0,0,0]c=[1,1,1,1,1,0,0,0,0]def xor(a,b): for i in range(len(a)):a[i]=a[i]^b[i] return a;

第一種操作是這樣的,和預(yù)期不太相符:

b=xor(a,c)b,a=a,b

a=[0, 0, 0, 0, 0, 1, 1, 1, 1] | b=[0, 0, 0, 0, 0, 1, 1, 1, 1]

第二種加入一個(gè)中間值來(lái)暫時(shí)存儲(chǔ)list b ,結(jié)果是這樣的:

mid=bb=xor(a,c)a=mid

a=[0, 0, 0, 0, 0, 0, 0, 0, 0] | b=[0, 0, 0, 0, 0, 1, 1, 1, 1]

問(wèn)題解答

回答1:

其實(shí)不太明白你說(shuō)得'結(jié)果有差異'是指什么, 你這個(gè)輸出不是很正常的么?xor(a,c), 將列表a的每個(gè)元素, 和列表c的每個(gè)元素取異或結(jié)果, 導(dǎo)致列表變成結(jié)果a變成[0, 0, 0, 0, 0, 1, 1, 1, 1]xor函數(shù)在修改列表a的同時(shí), 還順帶return了一個(gè)列表a并且賦值給b, 這樣子 b和a不是同一樣的列表么?

而你下面的'中間變量', 只是存了b之前的值而已, 如果你想說(shuō)用第一種方法達(dá)到第二種方法的效果, 那你可以不要賦值給b, 直接替換

xor(a,c)b,a=a,bprint a, b回答2:

第一種,是把b值改變,再a,b交換第二種,定義一個(gè)新值mid,再改變b值,再把mid賦值給a

這結(jié)果是對(duì)的,有什么問(wèn)題?

回答3:

def xor(a,b): for i in range(len(a)):a[i]=a[i]^b[i] return a;

這個(gè)函數(shù),實(shí)質(zhì)就是返回了 a,中間可能有修改, 然后

print id(a)print id(b)b=xor(a,c) # <-- 就是 b==aprint id(a) == id(b) # <-- 調(diào)換之后應(yīng)該相等了b,a=a,b # <-- 這里兩個(gè)都是指向同一個(gè)東西了

如果只是兩個(gè)互換:

a, b = b, a # <-- 這樣就好了

標(biāo)簽: Python 編程
主站蜘蛛池模板: 成人在线免费 | 日韩无 | 亚洲成人精品一区二区三区 | 成人免费毛片高清视频 | 日本在线免费观看 | 国产精品毛片在线 | 日韩精品亚洲专区在线观看 | 狠狠综合 | 中文无码日韩欧 | 国产成人精品久久 | 精品国产黄a∨片高清在线 99热婷婷 | 久久久网 | 天天色天天看 | 羞羞视频在线观看视频 | 亚洲精品二区三区 | 久久久蜜桃 | 日韩一级免费在线观看 | 久久99精品国产自在现线 | 看全黄大色黄大片老人做 | 五月婷婷导航 | 91av在线播放 | 国产精品久久精品久久 | 欧美猛交ⅹxxx乱大交视频 | 99国产精品视频免费观看一公开 | 欧美日韩一区二区在线 | 国产片一区二区三区 | 在线一区二区三区 | 精品国产三级 | 黄色免费一级 | 亚洲精品在线网站 | 精品国产一区二区三区日日嗨 | 中文字幕久久精品 | 国产精品白浆 | 精品久久久久久久久久久久 | 成人精品鲁一区一区二区 | 日本精品在线 | 香蕉久久久 | 99精品国产高清一区二区麻豆 | 91性高湖久久久久久久久_久久99 | 伊人伊人 | 亚洲成人高清在线 |