python list

list

class list([iterable])

构造方法

  • 使用一对方括号表示空列表:[]
  • 使用方括号,用逗号分隔项目[a], [a, b, c]
  • 使用列表推导式: [x for x in iterable]
  • 使用类型构造函数:list()或list(iterable)

序列通用操作

操作结果
x in sTrue如果s的项目等于x,则False
x not in sFalse如果s的项目等于x,否则True
s + ts和t的并置
s * n or n * s相当于将s添加到自身n次
s[i]i项目s,来源0
s[i:j]从i到j的s
s[i:j:k]slice of s from i to j with step k
len(s)长度s
min(s)s的最小项
max(s)s的最大项目
s.index(x [, i [, j]])在s中(在索引i之后或索引j之前)的x
s.count(x)s中x的总出现次数

可变序列操作

操作结果
s [i] = xx替换s的项目i
s [i:j] = t从可迭代的t的内容替换从i到j的s
del s [i:j]与s [i:j] = []
s [i:j:k] = ts[i:j:k]的元素被t取代
del s [i:j:k]从列表中删除s[i:j:k]的元素
s.append(x)将x追加到序列的末尾(与s [len(s):len(s)] = [x])
s.clear()从s中删除所有项目(与del s [:]相同)
s.copy()创建s的浅拷贝(与s[:]相同)
s.extend(t)或s + = t使用t的内容延伸s(大部分与s [len(s):len(s)] t3 > = t)
s * = n更新s,其内容重复n次
s.insert(i, x)在由i给出的索引处插入x到s(与s [i:i] = [x])
s.pop([i])在i检索项目,并从s中删除它
s.remove(x)从s中移除第一个项目s [i] == x
s.reverse()反转s的项目

解包方式

>>> t = (1, 2, 3, 4)
>>> first, *middle, last = t
>>> middle
[2, 3]
>>> _, *rest = t
>>> rest
[2, 3, 4]

切片

list[start:stop:step]
s = slice(start,stop,step)
list[s]

列表推导式

[i for i in iterable if condition]

索引迭代
enumerate()可以把一个list变成索引-元素对。

for i, value in enumerate(['A', 'B', 'C']):print(i, value) 

zip
zip()可以将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,并返回一个迭代器,常用于同时遍历两个可迭代对象。

>>> li1 = ['Python' ,'JavaScript', 'Java']
>>> li2 = [1, 2, 3]
>>> nl = zip(li1, li2)
[('Python', 1), ('JavaScript', 2), ('Java', 3)]

配合dict可以生成字典

>>> l1 = ['A', 'B', 'C']
>>> l2 = [1, 2, 3]
>>> dict(zip(l1, l2))
{'A': 1, 'B': 2, 'C': 3}

列表合并
除了用extend方法还可以用

>>> l1 = [1, 2]
>>> l2 = [3, 4]
>>> l3 = [*l1, *l2]
>>> l4 = sum([l1, l2],[]) # 利用了sum的特性
>>> l5 = li+li # 字典+法的重载

列表值的判定

a=[1,2]
a==1,2  # 返回一个元组,元组的第二个值是第二个值,这个在numpy中可以应用
>>> (False, 2)

map

a = [1,2,3,4]
list(map(lambda x:x*2,a))

flatten

from itertools import chain
a=[[1,3],[1,2]]
list(chain(*a))
from itertools import chain
wordsList = ["hello tom hello","aa bb"]
wordsListSplit = list(map(lambda x:x.split(" "),wordsList))
list(chain(*wordsListSplit))

scala中有flatmap函数完成这个操作,既先flat再map

filter

lst = [("a",3),("b",1),("c",2)]
list(filter(lambda x:x[1]>2,lst))

sort

sorted("This is a test string from Andrew".split(), key=str.lower, reverse=True)  # 不区分大小写,默认升序reverse=False
student_tuples = [('john', 'A', 15),('jane', 'B', 12),('dave', 'B', 10),]
sorted(student_tuples, key=lambda student: student[2])  # 按元组第二个位置排序

reduce

from functools import reduce
lst = [1,2,3,4,5]
reduce(lambda x,y: x+y,lst)

https://stackoverflow.com/questions/952914/how-to-make-a-flat-list-out-of-list-of-lists/952952?r=SearchResults#952952

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值