請問為什么如下不能執行?
如下?m=l?的時候不能執行 l?=?['Adam',?'Lisa',?'Bart',?'Paul'] m?=?l for?name?in?l: ????y=name.lower() ????m.append(y) s?=?set?(m) print?'adam'?in?s print?'bart'?in?s
但是將m=l換成 m=['Adam', 'Lisa', 'Bart', 'Paul']就可以了?
l?=?['Adam',?'Lisa',?'Bart',?'Paul'] m?=?['Adam',?'Lisa',?'Bart',?'Paul'] for?name?in?l: ????y=name.lower() ????m.append(y) s?=?set?(m) print?'adam'?in?s print?'bart'?in?s
2020-07-02
2020-06-06
l類型為list時? 賦值給其他變量是引用傳遞,引用傳遞傳的是地址,所以你不管操作l還是m? 實際都是操作一片內存區域。int? string 為值類型傳遞,所以賦值后 新變量與原變量互不干擾。
2020-02-14
L和m指向同一個內存區域,往m里append 等于往 L 里 append,所以 for循環無法退出,執行一次for,就會再次添加,形成死循環。