亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

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

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

問題描述

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]

第二種加入一個中間值來暫時存儲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]

問題解答

回答1:

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

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

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

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

這結(jié)果是對的,有什么問題?

回答3:

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

這個函數(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 # <-- 這里兩個都是指向同一個東西了

如果只是兩個互換:

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

標(biāo)簽: Python 編程
主站蜘蛛池模板: 超级极品白嫩美女在线 | 国产亚洲玖玖玖在线观看 | 国产真实偷乱视频在线观看 | 98香蕉草草视频在线精品看 | 国内精品久久国产 | 国产黄a三级三级看三级 | 黄色国产在线视频 | 99成人国产精品视频 | 色多多成视频人在线观看 | 日韩中文字幕在线观看 | 777成了人乱视频 | 色图图 | 中文字幕中出在线 | 中文字幕在线影院 | 亚洲国产国产综合一区首页 | 黄视频在线观看免费 | 香蕉97 | 黄色高清视频 | 99久久国产免费中文无字幕 | 久久久久激情免费观看 | 精品久久久日韩精品成人 | 九九99香蕉在线视频网站 | 日本黄色片一级片 | 青青草视频破解版 | 久久国产精品免费专区 | 免费在线黄网站 | 国产精品嫩草视频永久网址 | 国产成人久久777777 | 国产丶欧美丶日韩丶不卡影视 | 国产精品99r8免费视频2022 | 日本欧美国产精品 | 国产精品免费视频一区一 | 成人做爰免费网站 | 欧美另类色图 | 中文字幕永久在线视频 | 99久久国产综合色 | 久久国产这里只有精品 | 国产乱理论片在线观看理论 | 午夜精品成人毛片 | 69日本xxxxxxxx78 | 久久精品国产99国产 |