010 列表1

010 列表1

 列表:一个打了激素的数组。
列表可以把[整数,浮点数,字符串,对象]打包起来。
 如: 
>>> member = ['abc','qwe','dfet']
>>> member
['abc', 'qwe', 'dfet']
>>> number = [1,2,3,4,5]#普通列表
>>> number
[1, 2, 3, 4, 5]
>>> mix = [1,'hello',3.1415,[1,2,3]]#混合列表
>>> mix
[1, 'hello', 3.1415, [1, 2, 3]]
>>> empty = []#空列表
>>> empty
[]
>>> 
 
向列表添加元素
append()
如:
 
>>> member.append('hello')
>>> member
['abc', 'qwe', 'dfet', 'hello']
>>> len(member)
4
>>> 
 但要同时加入两个元素如: 
>>> member.append('python','world')
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    member.append('python','world')
TypeError: append() takes exactly one argument (2 given)
>>> 
 则会报错,原因是append()这个方法只能加一个元素
同时加入两个或以上元素需要用到这个方法:
extend()
如:
 
>>> member.extend('python','world')
Traceback (most recent call last):
  File "<pyshell#13>", line 1, in <module>
    member.extend('python','world')
TypeError: extend() takes exactly one argument (2 given)
>>> 
 但,仍然报错?why??
 extend这个方法原理是使用一个列表来扩展另一个列表,so,它的参数应该是一个列表。如: 
>>> member.extend(['python','world'])
>>> member
['abc', 'qwe', 'dfet', 'hello', 'python', 'world']
>>> len(member)
6
>>> 
 成功!
 我们注意到,加入列表的元素都在原有元素的后面陈列,如果需要加入的元素位置需要比较靠前怎么办呢?以上两个方法都是把元素追加到列表末尾,因此我们需要用另一个方法:
insert()
这个方法有两个参数,第一个参数代表在列表中的位置,第二个参数表示在第一个参数位置上插入一个元素。如:
 
>>> member.insert(1,'hey')
>>> member
['abc', 'hey', 'qwe', 'dfet', 'hello', 'python', 'world']
>>> 
列表是从零开始的,所以,1这个位置在列表中是第二位 
>>> member.insert(0,'hey')
>>> member
['hey', 'abc', 'hey', 'qwe', 'dfet', 'hello', 'python', 'world']
>>> 
 
 测试题:
   
0. 列表都可以存放一些什么东西?
答: all,整数,浮点数,字符串,对象
论坛参考答案:
我们说 Python 的列表是一个打了激素的数组,如果把数组比喻成集装箱,那么 Python 的列表就是一个大仓库,Ta 可以存放我们已经学习过的任何数据类型。
>>> mix = [1, ‘小甲鱼’, 3.14, [1, 2, 3]]
1. 向列表增加元素有哪些方法?
答:三个方法:append(),extend(),insert()
2. append() 方法和 extend() 方法都是向列表的末尾增加元素,请问他们有什么区别?
答:append()只能一次添加一个元素,extend()可以通过在列表里扩展添加2个以上元素。
论坛参考答案:
append() 方法是将参数作为一个元素增加到列表的末尾。
extend() 方法则是将参数作为一个列表去扩展列表的末尾。
  
请看以下示例:
  1. >>> name = ['F', 'i', 's', 'h']
  2. >>> name.append('C')
  3. >>> name
  4. ['F', 'i', 's', 'h', 'C']
  5. >>> name.extend(['.', 'c'])
  6. >>> name
  7. ['F', 'i', 's', 'h', 'C', '.', 'c']
  8. >>> name.append(['o', 'm'])
  9. >>> name
  10. ['F', 'i', 's', 'h', 'C', '.', 'c', ['o', 'm']]
复制代码
3. member.append(['竹林小溪', 'Crazy迷恋']) 和 member.extend(['竹林小溪', 'Crazy迷恋']) 实现的效果一样吗? 
 答:不一样,append会把['竹林小溪', 'Crazy迷恋']作为一个元素添加进去,包括中括号。extend会把'竹林小溪', 'Crazy迷恋'两个元素添加进去。
4. 有列表 name = ['F', 'i', 'h', 'C'],如果小甲鱼想要在元素 'i' 和 'h' 之间插入元素 's',应该使用什么方法来插入? 
答 
name.insert(2,'s')
动动手:
  
0. 自己动手试试看,并分析在这种情况下,向列表添加数据应当采用哪种方法比较好?
假设给定以下列表:
member = ['小甲鱼', '黑夜', '迷途', '怡静', '秋舞斜阳']
要求将列表修改为:
member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
方法一:使用 insert() 和 append() 方法修改列表。
方法二:重新创建一个同名字的列表覆盖。
答:重建一个更快吧。。。。
论坛参考答案:
方法一:
  1. member.insert(1, 88)
  2. member.insert(3, 90)
  3. member.insert(5, 85)
  4. member.insert(7, 90)
  5. member.append(88)
复制代码
方法二:
  1. member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
复制代码
对于这种情况,明显是第二种方法看起来要好一些嘛。

不过对于大型的列表,第一种方法可能更合适,所以我们说永远没有最好的,只有最合适的。
1. 利用 for 循环打印上边 member 列表中的每个内容,如图:
图1.PNG  
答:
 
member = ['', 88, '', 90, '', 85, '', 90, '', 88]
for i in member:
    print(i)
 2. 上一题打印的样式不是很好,能不能修改一下代码打印成下图的样式呢?【请至少使用两种方法实现】
图2.PNG 
 
 

答:不会
 论坛参考答案:

  1. 方法一:
  2. count = 0
  3. length = len(member)
  4. while count < length:
  5.     print(member[count], member[count+1])
  6.     count += 2
  7. 方法二:    
  8.     
  9. for each in range(len(member)):
  10.     if each%2 == 0:
  11.         print(member[each], member[each+1])
复制代码
posted @ 2014-02-28 10:19  小丑戌  阅读(476)  评论(0编辑  收藏  举报