函数修改列表

原创 Laughing  2018-10-11 22:39  阅读 436 次 评论 0 条

在函数中修改列表

温馨提示

将列表传递给函数后,函数就可对其进行修改。在函数中对这个列表所做的任何修改都是永久性的,这让你能够高效地处理大量的数据。

  1. unprint_design = ['iphone case','robot pendant','dodecahedron']  
  2. completed_models = []  
  3. def print_models(unprint_design,completed_models):  
  4.     while unprint_design:  
  5.         completed_models.append(unprint_design.pop())  
  6.   
  7. def show_completed_models(completed_models):  
  8.     print(completed_models)  
  9.   
  10. print_models(unprint_design,completed_models)  
  11. show_completed_models(completed_models)  
['dodecahedron', 'robot pendant', 'iphone case']

禁止函数修改列表

有时候,需要禁止函数修改列表。例如,假设像前一个示例那样,你有一个未打印的设计列表,并编写了一个将这些设计移到打印好的模型列表中的函数。你可能会做出这样的 决定:即便打印所有设计后,也要保留原来的未打印的设计列表,以供备案。但由于你将所有的设计都移出了unprinted_designs ,这个列表变成了空的,原来的列表没有 了。为解决这个问题,可向函数传递列表的副本而不是原件;这样函数所做的任何修改都只影响副本,而丝毫不影响原件。

  1. unprint_design = ['iphone case','robot pendant','dodecahedron']  
  2. completed_models = []  
  3. def print_models(unprint_design,completed_models):  
  4.     while unprint_design:  
  5.         completed_models.append(unprint_design.pop())  
  6.   
  7. def show_completed_models(completed_models):  
  8.     print(completed_models)  
  9.   
  10. print_models(unprint_design[:],completed_models)  
  11. print(unprint_design)  
['iphone case', 'robot pendant', 'dodecahedron']

历史上的今天:

本文地址:https://www.lisen.me/function-modification-list.html
版权声明:本文为原创文章,版权归 木子网 所有,欢迎分享本文,转载请保留出处!

发表评论


表情