菜鸟也来学python 笔记2 - python列表谈
1 键盘输入
?
python提供了内置的函数获得键盘的输入。这个函数是raw_input,它被调用时,程序暂停执行,等待用户输入信息。
当回车被按下后,程序继续执行。并且返回用户输入的信息。
?
?
>>> input = raw_input()I love Python!>>> print inputI love Python!>>>
?
?可以给一些提示作为用户的提醒,具体一看程序你马上就明白了~
?
?
>>> name = raw_input("Please input your name:")Please input your name:James Guo>>> print nameJames Guo>>>
?
?
2 继续上次笔记谈到的 ?关键字 ?“in”
?
not 和 in ?组合在一起可以干什么?
?
?
>>> name = ["James","Lucy","Tom","Lily"]>>> 'Mike' not in nameTrue>>>
?
?
3 列表是可以变的
?
和字符串是不一一样子的,列表的元素是可以改变的。这是个很好的特性,可以修改,添加,删除列表的元素值。
?
?
>>> fruit = ["banana", "apple", "peach"]>>> fruit['banana', 'apple', 'peach']>>> fruit[0] = "orange">>> fruit[-1] = "pear">>> fruit['orange', 'apple', 'pear']>>>
?
?通过赋值,删除一些元素
?
?
>>> list = [1,2,3,4,5,6,7]>>> id(list)45190360>>> list[1:3] = []>>> print list[1, 4, 5, 6, 7]>>> id(list)45190360>>>?
?
del 删除列表的元素
?
?
>>> a = ["one","two","three"]>>> del a[1]>>> a['one', 'three']>>>?
?
4 变量
?
当你看到下面的程序你会有什么想法呢?
列表和字符串有区别吗?
?
?
>>> a = "what the hell ">>> b = "what the hell ">>> id(a)45634528>>> id(b)45613968>>> a = "xyz">>> b = "xyz">>> id(a)45700760>>> id(b)45700760>>> a = ["x","y","z"]>>> b = ["x","y","z"]>>> id(a)44496816>>> id(b)44544368>>>?
?
5 克隆列表
?
?
如果要修改列表,但是要保留原来列表的一份拷贝,就需要列表自我复
制,这过程叫做克隆。克隆的结果是产生两个值一样,但却有不同标识符
的列表。克隆的方法是利用列表的片断操作符:
?
?
?
>>> x = [1,2,3,4,5,6,7]>>> y = x[:]>>> print y[1, 2, 3, 4, 5, 6, 7]>>> id(x)4792152>>> id(y)45161128>>>?
?
修改一下呢
?
?
?
>>> x = [1,2,3,4,5,6,7]>>> y = x[:]>>> print y[1, 2, 3, 4, 5, 6, 7]>>> id(x)4792152>>> id(y)45161128>>> y[0] = 9>>> print y[9, 2, 3, 4, 5, 6, 7]>>> print x[1, 2, 3, 4, 5, 6, 7]>>>
?
6 列表的嵌套?
?
嵌套的列表是作为另一个列表中的元素。下面列表中的第三个元素是
一个列表。
?
?
?
>>> list = ["hello",314,5,[10,20,30]]>>> elt = list[3]>>> print elt[10, 20, 30]>>> elt[0]10>>>
?7?嵌套列表可以代表矩阵
?
>>> matrix = [[1,2,3],[4,5,6],[7,8,9]]>>> matrix[1][4, 5, 6]>>> matrix[1][1]5>>>
?
8 字符串和列表
?
?
>>> import string>>> song = "The rain in Spain...">>> string.split(song)['The', 'rain', 'in', 'Spain...']>>>
?
?split函数的另外一个参数是规定作为分隔符的字符串。分隔符不显示在列表中。
?
>>> string.split(song,'ai')['The r', 'n in Sp', 'n...']>>>
?
?函数jion的功能和split正好相反,它是将列表连接成字符串。默认的分隔符是空格。
?
?
>>> list = ['The','rain','in','Spain...']>>> string.join(song)'T h e r a i n i n S p a i n . . .'>>>
?
8 列表映射
?
>>> fruit = ['apple','orange','pear','banana']>>> i = 0>>> for var in fruit:fruit[i] = var + 's'i= i + 1>>> print fruit['apples', 'oranges', 'pears', 'bananas']>>> fruit['apples', 'oranges', 'pears', 'bananas']>>> fruit = ['apple','orange','pear','banana']>>> [fruit + 's' for fruit in fruit]['apples', 'oranges', 'pears', 'bananas']>>>?当for语句每次循环时,把一个元素赋值给变量fruit,然后这个变量再和字符‘s ’相加,最后把列表fruit的值全部更新。
上述列表映射对所有元素做了相同的的操作,如果我们只想对满足条件的元素进行处理该怎么办呢?很简单,只要在加上if 语句就行了。假如不想对字符个数等于六的元素加‘s ’,那么可用下列方法过滤列表
?
>>> fruit = ['apple','orange','pear','banana']>>> [fruit + 's' for fruit in fruit if len(fruit)!= 6]['apples', 'pears']>>>?
?