有文章介绍说Python的列表是新手可以直接使用的最强大的Python功能之一,不知如何讲起,但是列表确实非常的简单和好用,并且它融合了众多重要的编程概念。
列表能够在一块地方存储成组的信息,其中可以只包含几个元素,也可以包含数百万个元素。
在C语言中,可以理解为字符串数组,但是列表可比字符串数组好玩和好用多了。
列表由一系列按特定顺序排列的元素组成。可以创建包含字母表中所有字母、数字0~9或所有家庭成员姓名的列表;也可以将任何东西加入列表中,其中的元素之间可以没有任何关系。
在Python中,使用方括号 [ ] 来表示列表,并用逗号来分割其中的元素。鉴于列表中通常包含多个元素,所以呢,给列表指定一个表示复数的名称是必须的。光说不练都是假把式,来个例子,瞅瞅,下面的列表中包含了诗和远方(哈哈~,只不过是想要爬的几座名山):

mountains.py
mountains = ['TaiShan' , 'HuangShan' , 'SongShan' , 'HuaShan' , 'HengShan']
print(mountains)

结果如何呢,请继续浏览~,Python将打印列表内部的表示,包括方括号:

['TaiShan', 'HuangShan', 'SongShan', 'HuaShan', 'HengShan']

有时我们不需要全部把列表中的内容全部显示出来,或者指定显示那个就秀那个,那么就用到了列表的访问。

1. 可以直接像C语言中访问数组成员一样,访问列表的元素:

1 mountains = ["TaiShan","HuangShan","SongShan","HuaShan","HengShan"]
  2 print(mountains[1])

来,一起看一下是否会得到和C语言数组成员访问一样的结果呢?

book@www.100ask.org:~/python$ python mountians.py 
HuangShan

很棒,得到一样的效果,是不是比C语言简单多啦,那是肯定的,哈哈
好了,继续修炼~

2. 列表中的值,可以像使用变量一样的使用,比如呢?

1 mountains = ["TaiShan","HuangShan","SongShan","HuaShan","HengShan"]
2 message = "When the epidemic is over, I'm going to climb " + mountains[0].title() + "." 
3 print(message)

来看一下结果如何:

book@www.100ask.org:~/python$ python mountians.py 
When the epidemic is over, I'm going to climb Taishan.

嗯,达到了预期结果,不错不错,go on…

3. 修改,添加和删除元素
创建的列表大部分是动态的,所以在随着程序运行的过程中会面临着增删元素,例如:在游戏中,玩家要消灭敌军,在刚开始时需要把一些敌军加入到列表中,然后呢,每当有一个低聚被消灭,就需要从列表中删除,而当有新的敌军出现时,就需要添加到列表中,所以在整个游戏中间列表的长度时不断变化的。
1) 修改
修改列表元素的语法与访问列表元素的语法类似。要修改元素,可指定列表名和要修改的元素的索引,再指定该元素的新值。还是上面的五岳为例:

1 mountains = ["TaiShan","HuangShan","SongShan","HuaShan","HengShan"]
		2 print(mountains)
		3 mountains[0] = "BaiHuaShan"
		4 print(mountains)

来看看结果如何:

book@www.100ask.org:~/python$ python mountians.py 
['TaiShan', 'HuangShan', 'SongShan', 'HuaShan', 'HengShan']
['BaiHuaShan', 'HuangShan', 'SongShan', 'HuaShan', 'HengShan']

列表中的第一个元素已经被修改了。
2)添加元素
比如:添加可视化数据或给网站添加新注册的用户,Python提供了多种在既有列表中添加新数据的方式。
1> 在列表的末尾添加元素,那怎么添加呢?方法append()提供将元素添加到列表的末尾,并且不影响列表中的其他所有元素,来看看:

1 mountains = ["TaiShan","HuangShan","SongShan","HuaShan","HengShan"]
  2 print(mountains)
  3 
  4 mountains.append("MaoShan")
  5 print(mountains)

结果如何呢?

book@www.100ask.org:~/python$ python mountians.py 
['TaiShan', 'HuangShan', 'SongShan', 'HuaShan', 'HengShan']
['TaiShan', 'HuangShan', 'SongShan', 'HuaShan', 'HengShan', 'MaoShan']

还可以,还可以…,也可以创建一个空的列表,然后使用这种追加到列表的末尾的方法,把信息填到列表中去。
2> 在列表中插入元素
使用insert()方法,可以在列表中的任何位置添加新元素,为此呢,需要指定新元素的索引和值,来看看:

1 mountains = ["TaiShan","HuangShan","SongShan","HuaShan","HengShan"]
  2 print(mountains)
  3 
  4 mountains.insert(3,"LuShan");
  5 print(mountains)

结果呢?

book@www.100ask.org:~/python$ python mountians.py 
	['TaiShan', 'HuangShan', 'SongShan', 'HuaShan', 'HengShan']
	['TaiShan', 'HuangShan', 'SongShan', 'LuShan', 'HuaShan', 'HengShan']

Python的这种使用insert()方法插入元素的操作,是把列表中既有的元素每一个向右移动一个位置,你看这样是不是比C语言中的数组成员插入操作方便多了。

3)删除元素
当用户在创建的Web应用中注销账户时,需要把该用户从活跃列表中删除,Python的删除也提供了几种方式:
1> 使用del语句删除,如果知道要删除的元素在列表中的位置,可以使用del语句:

1 mountains = ["TaiShan","HuangShan","SongShan","HuaShan","HengShan"]
 2 print(mountains)
 3 
 4 mountains.insert(3,"LuShan");
 5 print(mountains)
 6 
 7 del mountains[3]
 8 print(mountains)

结果如何呢?

book@www.100ask.org:~/python$ python mountians.py 
['TaiShan', 'HuangShan', 'SongShan', 'HuaShan', 'HengShan']
['TaiShan', 'HuangShan', 'SongShan', 'LuShan', 'HuaShan', 'HengShan']
['TaiShan', 'HuangShan', 'SongShan', 'HuaShan', 'HengShan']

之前添加的庐山,给删除了。使用del语句将值从列表中删除后,就无法在访问它了,就是说del是永久性删除了,就相当于把庐山占用的内存给释放了,然后数据左移,恢复原样了。
2> 使用pop()方法删除
有时啊,虽然把列表成员给删除了,但是还需要使用该成员,在Web应用程序中,需要把活跃的成员删除,添加到非活跃的成员中。 方法pop()可删除列表末尾的元素,并且还可以继续使用该成员,

1 mountains = ["TaiShan","HuangShan","SongShan","HuaShan","HengShan"]
  2 print(mountains)
  3 
  4 mountains.insert(6,"LuShan");
  5 print(mountains)
  6 
  7 message = mountains.pop()
  8 print(mountains)
  9 print(message)

看看结果:

book@www.100ask.org:~/python$ python mountians.py 
['TaiShan', 'HuangShan', 'SongShan', 'HuaShan', 'HengShan']
['TaiShan', 'HuangShan', 'SongShan', 'HuaShan', 'HengShan', 'LuShan']
['TaiShan', 'HuangShan', 'SongShan', 'HuaShan', 'HengShan']	
LuShan

结果还可以呦…
pop()方法,直接使用是弹出列表中最后一个成员,同时也可以弹出任何位置的元素,只需在括号中指定要删除的元素的索引即可,来看看:

1 mountains = ["TaiShan","HuangShan","SongShan","HuaShan","HengShan"]
  2 print(mountains)
  3 
  4 mountains.insert(5,"LuShan");
  5 print(mountains)
  6 
  7 message = mountains.pop(5)
  8 print(mountains)
  9 print(message)

结果呢?

book@www.100ask.org:~/python$ python mountians.py 
['TaiShan', 'HuangShan', 'SongShan', 'HuaShan', 'HengShan']
['TaiShan', 'HuangShan', 'SongShan', 'HuaShan', 'HengShan', 'LuShan']
['TaiShan', 'HuangShan', 'SongShan', 'HuaShan', 'HengShan']	
LuShan

3>根据值删除元素
如果仅知道要删除元素的值,而不知道元素的索引值也可以删除,使用remove()方法:

1 mountains = ["TaiShan","HuangShan","SongShan","HuaShan","HengShan"]
  2 print(mountains)
  3 
  4 mountains.insert(5,"LuShan");
  5 print(mountains)
  6 
  7 mountains.remove("LuShan")
  8 print(mountains)

结果如何呢?

book@www.100ask.org:~/python$ python mountians.py 
['TaiShan', 'HuangShan', 'SongShan', 'HuaShan', 'HengShan']
['TaiShan', 'HuangShan', 'SongShan', 'HuaShan', 'HengShan', 'LuShan']
['TaiShan', 'HuangShan', 'SongShan', 'HuaShan', 'HengShan']

这样呢,就永久的删除了庐山,但也可保留庐山这个成员,就是先把庐山存储到变量里面,然后呢,把变量作为参数传递到remove()方法中去,这样庐山就保留在了变量中。