创建list
只要把逗号分隔的不同的数据项使用方括号括起来即可。
如下所示:
list0 = [] # 空列表
list1 = ['phthon', 'java', 1997, 2000]
list2 = [1, 2, 3, 4, 5 ]
list3 = ["a", "b", "c", "d"]
与字符串的索引一样,列表索引从0开始。列表可以进行截取、组合等。
列表操作的函数
函数 | 例子 | 输出 | 说明 |
---|---|---|---|
alist.append() | alist.append('app') | alist = ['app'] | 列表末尾添加 |
alist.insert() | alist.insert( 3, 2) | alist = ['app',2] | 列表指定位置添加 |
alist.insert() | alist.insert(3,3) | alist = ['app', 2, 3] | 列表指定位置添加 |
alist.insert() | alist.insert(3,4) | alist = ['app', 2, 3, 4] | 列表指定位置添加 |
alist.insert() | alist.insert(3,5) | alist = ['app', 2, 3, 5, 4] | 列表指定位置添加 |
alist.extend() | alist.extend([99, '00']) | alist = ['app', 2, 3, 5, 4,99, '00'] | 列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) |
pop_data=alist.pop() | pop_data=alist.pop() | alist = ['app', 2, 3, 5, 4,99] | 默认删除list中最后一个元素,pop_data='00' |
pop_data=alist.pop() | pop_data=alist.pop(1) | alist = ['app', 3, 5, 4, 99] | 删除第2个元素(0开头),pop_data=2 |
alist.remove() | alist.remove('app') | alist = [3, 5, 4,99] | 删除list指定元素 |
n = len(alist) | n = len([1,2,3]) | n = 3 | 列表元素个数 |
lst2 = list(set()) | lst2 = list(set([2, 1, 3, 4, 1])) | lst2 = [1, 2, 3, 4] | 去重 |
m = max(alist) | m = max([1,2,3]) | m = 3 | 返回列表元素最大值 |
n = min(alist) | n = min([1,2,3]) | n = 1 | 返回列表元素最小值 |
l = list(seq) | l = list((1,2,3)) | l = [1, 2, 3] | 将元组转换为列表 |
list信息
count() 用于统计某个元素在列表中出现的次数。
alist = [123, 'xyz', 'zara', 'abc', 123]
print (alist.count(123))
以上实例输出结果如下:
>>>2
使用index()方法:用于从列表中找出某个值第一个匹配项的索引位置。
alist = [123, 'xyz', 'zara', 'abc', 123]
print (alist.index(123))
以上实例输出结果如下:
>>>0
切片
索引访问列表中的值
注:切片同样适用于字符串,字符串也有下标
方法 说明
name[n:m] 切片是不包含后面那个元素的值(顾头不顾尾)
name[:m] 如果切片前面一个值缺省的话,从开头开始取
name[n:] 如果切片后面的值缺省的话,取到末尾
name[:] 如果全部缺省,取全部
name[n:m:s] 隔s个元素取一次; 步长是正数从左往右取; 步长是负数从右往左取
alist = [123, 'xyz', 'zara', 2018, 'only']
alist[0] # 输出结果:123
alist[-2] # 输出结果:2018
alist[1:] # 输出结果:['xyz', 'zara', 2018, 'only']
alist[:3] # 输出结果:[123, 'xyz', 'zara']
alist[1:3] # 输出结果:['xyz', 'zara']
sort()排序和反序
sort() 用于对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。
语法:list.sort(cmp=None, key=None, reverse=False)
参数:
cmp :可选参数, 如果指定了该参数会使用该参数的方法进行排序。
key:主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse: 排序规则,reverse = True 降序, reverse = False 升序(默认)。
alist = [123, 'xyz', 'zara', 2018, 'only']
alist.sort() #降序
alist.sort(reverse = True) #升序
使用reverse() 方法:用于反向列表中元素。
alist = [123, 'xyz', 'zara', 2018, 'only']
alist.reverse()
print(alist)
以上实例输出结果如下:
>>>['only', 2018, 'zara', 'xyz', 123]
map()挑出list
map(方法名, 列表)
类似for循环
def f(x):
return x*x
print (map(f, [1, 2, 3]))
输出结果:
[1, 4, 9]
def f(self):
return self["id"]
print (map(f, [{"id":1},{"id":2}]))
输出结果:
[1, 2]
差集、并集、交集
# 差集
a = [(2, 'aa', 'dsad'), (3, 'cc', 'dada'), (0, 'ss', 'okok')]
b = [(2, 'aa', 'dsad')]
data = set(a).difference(set(b))
print(type(data))
print(data)
<class "set">
{(3, 'cc', 'dada'), (0, 'ss', 'okok')}
data2 = list(data)
print(type(data2))
print(data2)
<class "list">
[(3, 'cc', 'dada'), (0, 'ss', 'okok')]
# 并集
a = [(2, 'aa', 'dsad'), (3, 'cc', 'dada'), (0, 'ss', 'okok')]
b = [(2, 'aa', 'dsad')]
data = set(a).union(set(b))
print(type(data))
print(data)
<class "set">
{(2, 'aa', 'dsad'), (3, 'cc', 'dada'), (0, 'ss', 'okok')}
data2 = list(data)
print(type(data2))
print(data2)
<class "list">
[(2, 'aa', 'dsad'), (3, 'cc', 'dada'), (0, 'ss', 'okok')]
# 交集
a = [(2, 'aa', 'dsad'), (3, 'cc', 'dada'), (0, 'ss', 'okok')]
b = [(2, 'aa', 'dsad')]
data = set(a).intersection(set(b))
print(type(data))
print(data)
<class "set">
{(2, 'aa', 'dsad')}
data2 = list(data)
print(type(data2))
print(data2)
<class "list">
[(2, 'aa', 'dsad')]
enumerate()加下标
seasons = ['Spring', 'Summer', 'Fall', 'Winter']
list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
list(enumerate(seasons, start=1)) # 下标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]