标签:
# 创建一个列表
只要把逗号分隔的不同的数据项使用方括号括起来即可。如下所示:
list1 = [‘physics‘, ‘chemistry‘, 1997, 2000];
list2 = [1, 2, 3, 4, 5 ];
list3 = ["a", "b", "c", "d"];
# 拷贝一个列表
x = [7,5,3]
y = x[:]
这样y才会产生副本,不能用y=x,这样x,y 指向同一个列表,改一个地方,最终列表什
发生改变
# 访问列表中的值
使用下标索引来访问列表中的值,同样你也可以使用方括号的形式截取字符,如下所示:
#!/usr/bin/python
list1 = [‘physics‘, ‘chemistry‘, 1997, 2000];
list2 = [1, 2, 3, 4, 5, 6, 7 ];
print "list1[0]: ", list1[0]
print "list2[1:5]: ", list2[1:5]
以上实例输出结果:
list1[0]: physics
list2[1:5]: [2, 3, 4, 5]
# 更新列表
你可以对列表的数据项进行修改或更新,你也可以使用append()方法来添加列表项,如下所示:
#!/usr/bin/python
list = [‘physics‘, ‘chemistry‘, 1997, 2000];
print "Value available at index 2 : "
print list[2];
list[2] = 2001;
print "New value available at index 2 : "
print list[2];
以上实例输出结果:
Value available at index 2 :
1997
New value available at index 2 :
2001
append()追加单个元素到list尾部,若是一个列表,也当成一个整体加入
extend()将列表中每一个元素分别加到尾部
若只是单个元素 append 和 extend 没有区别
ids = [1,2,3]
ids2=[3,4,5]
ids.append(ids2)
print ids 结果:[1, 2, 3, [3, 4, 5]]
----
ids = [1,2,3]
ids2=[3,4,5]
ids.extend(ids2)
print ids 结果:[1, 2, 3, 3, 4, 5]
insert() 将一个元素插入到列表中,但其参数有两个(如insert(1,”g”))
+ 加号,将两个list相加,会返回到一个新的list对象,前面三种方法不产生
新的副本,若对象大时尽量不用 +
# 删除列表元素
可以使用 del 语句来删除列表的的元素,如下实例:
#!/usr/bin/python
list1 = [‘physics‘, ‘chemistry‘, 1997, 2000];
print list1;
del list1[2];
print "After deleting value at index 2 : "
print list1;
以上实例输出结果:
[‘physics‘, ‘chemistry‘, 1997, 2000]
After deleting value at index 2 :
[‘physics‘, ‘chemistry‘, 2000]
# Python列表脚本操作符
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
如下所示:
Python 表达式 结果 描述
len([1, 2, 3]) 3 长度
[1, 2, 3] + [4, 5, 6] [1, 2, 3, 4, 5, 6] 组合
[‘Hi!‘] * 4 [‘Hi!‘, ‘Hi!‘, ‘Hi!‘, ‘Hi!‘] 重复
3 in [1, 2, 3] True 元素是否存在于列表中
for x in [1, 2, 3]: print x, 1 2 3 迭代
# Python列表截取
Python的列表截取与字符串操作类型,如下所示:
复制代码 代码如下:
L = [‘spam‘, ‘Spam‘, ‘SPAM!‘]
操作:
Python 表达式 结果 描述
L[2] ‘SPAM!‘ 读取列表中第三个元素
L[-2] ‘Spam‘ 读取列表中倒数第二个元素
L[1:] [‘Spam‘, ‘SPAM!‘] 从第二个元素开始截取列表
# Python列表操作的函数和方法
列表操作包含以下函数:
cmp(list1, list2):比较两个列表的元素
len(list):列表元素个数
max(list):返回列表元素最大值
min(list):返回列表元素最小值
list(seq):将元组转换为列表
sorted(list) 返回排好序的列表副本,原列表不变
# 列表操作包含以下方法:
list.append(obj):在列表末尾添加新的对象
list.count(obj):统计某个元素在列表中出现的次数
list.extend(seq):在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj):从列表中找出某个值第一个匹配项的索引位置
list.insert(index, obj):将对象插入列表
list.pop(obj=list[-1]):移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
list.remove(obj):移除列表中某个值的第一个匹配项
list.reverse():反向列表中元素
list.sort([func]):对原列表进行排序
# 解析(震撼功能)
求1到10,各数的平方数
squares = [x**2 for x in range(1,10)]
求1到100,能被3整除的数
aliquot = [n for n in range(1,100) if n%3==0]
去字符左右有空格
mybag = [‘ glass‘,‘apple‘,‘green leaf ‘]
mybag = [one.strip() for one in mybag]
# 列表排序
简单升序排序
x = [4, 6, 2, 1, 7, 9]
x.sort()
print x # [1, 2, 4, 6, 7, 9]
说明 sort()改变本身列表
--------
产生副本排序
x =[4, 6, 2, 1, 7, 9]
y = x[ : ] #产生副本
y.sort()
print y #[1, 2, 4, 6, 7, 9]
print x #[4, 6, 2, 1, 7, 9]
方法二:
x =[4, 6, 2, 1, 7, 9]
y = sorted(x) # sorted() 总是返回一个列表副本
print y #[1, 2, 4, 6, 7, 9]
print x #[4, 6, 2, 1, 7, 9]
---------
自定义排序
def comp(x, y):
if x < y:
return 1
elif x > y:
return -1
else:
return 0
nums = [3, 2, 8 ,0 , 1]
nums.sort(comp)
print nums # 降序排序[8, 3, 2, 1, 0]
nums.sort(cmp) # 调用内建函数cmp ,升序排序
print nums # 降序排序[0, 1, 2, 3, 8]
-----------
可选参数
sort方法还有两个可选参数:key和reverse
x = [‘mmm‘, ‘mm‘, ‘mm‘, ‘m‘ ]
x.sort(key = len) # 按长度升序
print x # [‘m‘, ‘mm‘, ‘mm‘, ‘mmm‘]
y = [3, 2, 8 ,0 , 1]
y.sort(reverse = True) #降序
print y #[8, 3, 2, 1, 0]
# 去重复项
# -*- coding: utf-8 -*-
ids = [1,2,3,3,4,2,3,4,5,6,1]
news_ids = []
for id in ids:
if id not in news_ids:
news_ids.append(id)
print news_ids
# 判断为空
if mylist:
# Do something with my list
else:
# The list is empty
# 遍历(采用了enumerate内置函数)
for i, element in enumerate(mylist):
# Do something with i and element
pass
同时得到key
若不要key,如下:
for element in mylist:
#code
#
标签:
原文地址:http://www.cnblogs.com/toby2chen/p/5197761.html