您的位置:首页 > 编程语言 > Python开发

python学习---列表

2015-12-11 18:43 465 查看
列表的特点:

1、**有序**的集合
2、通过**偏移**来索引,从而读取数据(偏移可以为负,即从右到左,最右为-1)
3、支持嵌套
4、**可变**的类型


1、切片:

a = [1,2,3,4,5,6,7]
正向索引(a[1:5:2])
反向索引 (a[-1:-5:2])从有到左索引
默认索引(a[0,])默认到最后一个数,间隔为1


2、添加操作:

1、"+"(生成一个新的列表)
2、extend 接受参数并将该**参数的每个元素**都添加到原有的列表中,修改列表而不是新建列表
3、append :添加**任意对象**到列表的末端(嵌套)
4、insert: 插入**任意对象**到列表中,可以控制插入位置。(嵌套)


3、 修改:

修改列表本身只需要直接赋值操作就行。
A = [1,2,3]
A[0]=’haha’
注意:a =[1,2,3]
b=a
a[0]=="lpc"
此时print b  ---->[lpc,2,3]
因为:变量即是引用,引用对象,指向对象的地址。


4 、删除操作:

del :我们通过索引删除指定位置的元素。del a[1]
注意:**del a 删除列表a的引用**
a =[1,2,3]
b=a
del a
print b ----> [1,2,3]
**del a[:]清空列表对象里的元素**
a =[1,2,3]
b=a
del a[:]
print b ----> []
remove:移除列表中指定值的**第一个匹配值**。如果没找到的话,**会抛异常**。
pop:返回**最后一个元素**,并从list中删除它。


5、成员关系:

In \not in我们可以判断一个元素是否在列表里。
返回一个bool类型,元素在列表里返回True,否则返回Fasle.


6 、列表推导式:

1、[expr for iter_var in iterable]
首先迭代iterable(列表)里所有内容,每一次迭代,都把iterable里相应内容放到iter_var中,**再在表达式expr中应用该iter_var的内容**,最后用表达式的计算值生成一个列表。
以上表达式等同于:
for inter_var in iterable:
print expr
eg:我们要生成一个包含1到10的列表
[x for x in range(1,11)]
输出 :a = ['lpc',[cpl]]
"name:lpc,name:cpl"
['name: %s ' % n for n in a]
2、[expr for iter_var in iterable if cond_expr]
加入了判断语句,只有满足条件的内容才把iterable里相应内容放到iter_var中,再在表达式中应用该iter_var的内容,最后用表达式的计算值生成一个列表。
eg;要生成包含1到10的所有奇数列表。
[x for x in ra
4000
nge(1,11) if x % 2 == 1]

3、xrange和range
xrange(start,end,step),它生成了一个xrange对象,而range生成一个列表。
**xrange用法:**
1、当需要操作一个大数据时,而且为了节约内存,使用xrange
2、只需要操作部分数据时而不是不是返回全部元素来完成操作。
4、应用:
(1)取出1-100的所有值平方
[x*x for x in xrange(1,101)]
(2)生成的东西不是数字
生成字符串:['the %s' % d for d in xrange(10)]
生成元组:[(x,y) for x in range(2) for y in range(2)]
生成字典:dict([(x,y) for x in range(2) for y in range(2)])


7、 排序翻转:

1、sort
L.sort(cmp = none, key = none ,reverse=False)
a = [33,11,22,44]
这个方式直接修改原列表。他的返回值为none,所以b = a.sort()
print b 输出的内容是None
key:通过一个例子来看:
a=['123','478','456']要想让列表a按照字符串中的数字大小排列
a.sort(key=int)
reverse:反转,可以在sort方法内设置reverse = Ture 来设置列表反转
cmp:比较,在python3中已被淘汰。
附:另一个方法sorted()用法和l.sort类似,需要在方法内指明列表,另外该方法不改变原有的列表,所以需要进行重新赋值。
2、多级排序:
a = [(1,2,3),(3,4,5),(4,3,2)]
比如:以第二位和第三位进行排序:
import operator
a.sort(key = operator.itemgetter(1,2))
3、针对某一游标排序
a = ['lpc':23,'cpl':25,'plc':20]
a.sort(k= lambda x:x[1])    按照每个单元里的第1个进行排序
4、reserve
list的reverse函数:反转一个list, 他的返回值为none.
比如上面的列表a
b = a. reverse()
print b 输出的内容是None


8、list内置方法

a = “lpc”
list(a)
print a -------> ['l','p','c']
1、返回一个列表,**参数是可以迭代的对象**(整型的数字就不可以)
2、里面的内容还是保持了传入可迭代对象的元素和顺序
3、如果参数为空,则返回一个空的列表
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python