python数据结构list篇学习,一些自己总结的知识点

常规的列表知识点可以看菜鸟教程,这里总结一下平时做题遇到的或者一些不常见的知识点。

list_test = [1,2,3]
a = list_test
print(a)
b,c,d = list_test # 前面的变量数一定与列表的元素数对应,不然会报错
print(b)
print(c)
[1, 2, 3]
1
2
list1 = [1,2,3]
list2 = [3,4,5]
print(list1+list2)
[1, 2, 3, 3, 4, 5]

Python List.pop()方法
pop()函数用于移除列表中的一个元素,默认为最后一个,并返回该元素的值。
pop()方法语句:list.pop([index=-1])

list1 = ["Google", "Runoob", "Taobao"]
list_pop = list1.pop()
print("删除的项:",list_pop)
print("列表现在是:",list1)
删除的项: Taobao
列表现在是: ['Google', 'Runoob']
list_pop = list1.pop(1)
print("删除的项",list_pop)
print("列表现在是:",list1)
删除的项 Runoob
列表现在是: ['Google']

Python List append()方法
append()方法用于在列表末尾添加新的对象,append方法是浅拷贝,语法list.append(obj)

list1 = ['Google','Runoob','Taobao']
list1.append('Baidu')
print('更新后的列表:',list1)
更新后的列表: ['Google', 'Runoob', 'Taobao', 'Baidu']

更新后的列表: ['Google', 'Runoob', 'Taobao', 'Baidu']

Python List.extend()方法
extend()用于在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表) 语法 list.extend(seq) – 元素列表
该方法没有返回值,但会在已存在的列表中添加新的列表内容

aList = [123, 'xyz', 'zara', 'abc', 123]
bList = [2009, 'manni']
aList.extend(bList)
print(aList)
[123, 'xyz', 'zara', 'abc', 123, 2009, 'manni']

Python反向遍历序列(列表、字符串、元组等)
1、reversed()

a = [1,2,3,4]
for i in reversed(a):
	print(i)

2、range(len(a)-1,-1,-1)

a = [1,2,3,4]
for i in range(len(a)): # 默认为for i in range(0, len(a),1)
	print(a)
for i in range(len(a)-1, -1,-1)
# python遵循左闭右开原则,len(a)-1 对应start,-1代表结束点,但是取不到,步长为-1,即每次迭代时减一

3、slice,切片操作

a = [1567]
for i in a[::-1]:
	print(i)

Python 列表推导式!!这个很重要
列表推导式书写形式:
[表达式 for 变量 in 列表]
[表达式 for 变量 in 列表 if 条件]

返回值肯定是一个列表了

li = [1,2,3,4,5,6,7,8,9]
print([x**2 for x in li])
print([x**2 for x in li if x > 5])
print(dict([(x,x*10) for x in li])) 
# dict()函数可以使列表中的元组对变为字典形式
print([(x,y) for i in range(10) if x%2 if x >3 for y in range(10) if y>7 if y != 8])
[1, 4, 9, 16, 25, 36, 49, 64, 81]
[36, 49, 64, 81]
{1: 10, 2: 20, 3: 30, 4: 40, 5: 50, 6: 60, 7: 70, 8: 80, 9: 90}
[(5, 9), (7, 9), (9, 9)]
vec = [2,4,6]
vec2 = [4,3,-9]
sq = [vec[i]+ vec2[i] for i in range(len(vec))]
print(sq)
print([x*y] for x in [1,2,3] for y in [1,2,3])
testlist = [1,2,3,4]
def mul2(x):
	return x*2
print([mul2(i) for i in testlist])

Python zip函数及用法
zip()函数是python内置函数之一,它可以将多个序列(列表、元组、字典、集合、字符串及range()区间构成的列表)"压缩"成一个zip对象,所谓压缩,其实就是将这些序列中对应位置的元素重新组合,生成一个个新的元组。¶

a = ['one', 'two', 'three']
b = [1, 2, 3]
zipped = zip(a,b)
c = list(zipped) # python3 zip返回的是一个对象,可以通过list函数进行展示
print(c)
[('one', 1), ('two', 2), ('three', 3)]

dict()与zip()函数可以一起用,那么可以将两个列表->一个内部含有元组的列表->字典

Python list.sort()方法与sorted()方法
list.sort()函数用于对原列表进行排序
list.sort(reverse=False),reverse排序规则,默认为False即升序,reverse=True 为降序
liest.sort()函数没有返回值,直接对原列表进行改变

a = [52314]
a.sort()
print(a)
[1,2,3,4,5]

对[[1,3],[0,10],[2,5],[4,5],[7,2]]这样一个列表中每一个列表的第一个元素进行排序

a = [[1,3],[0,10],[2,5],[4,5],[7,2]]
a.sort(key= lambda x:x[0])
print(a)
[[0, 10], [1, 3], [2, 5], [4, 5], [7, 2]]

sorted()返回一个新的已排序列表

a = [5,2,3,1,4]
b = sorted(a)
print(b)
[1,2,3,4,5]

enumerate 枚举
enumerate()函数用于将一个可遍历的对象(如列表、元组、字符串)组合成一个索引序列,同时列出数据下标和数据,一般用于for循环。
enumerate(sequemce, start=0) sequence:列表、元组或字符串 start:开始计数的初始下标
1、enumerate()用于list

seq = ['one','two','three']
print(list(enumerate(seq))) #与zip函数类似,返回的是一个对象,可以用list函数进行展示
print(list(enumerate(seq,start=1)))
[(0, 'one'), (1, 'two'), (2, 'three')]
[(1, 'one'), (2, 'two'), (3, 'three')]

2、enumerate()用于for循环
for循环中,整个enumerate序列都会被遍历

for i , element in enumerate(seq):
	print(i,element)
print('—————————')
for element in enumerate(seq):
	print(element)
0 one
1 two
2 three
---------------------
(0, 'one')
(1, 'two')
(2, 'three')

删除list中元素使用del

listx = [1,2,3,4,5]
del listx[0]
print(listx)
[2,3,4,5]

for及while循环打印List(列表)(元组方法相同)

str_list = ['Chile', 'b', 'c']
# 取值循环
for sub_str in str_list:
    print(sub_str,end=' ')
print('')
#索引循环
for i in range(len(str_list)):
    print(str_list[i],end=' ')
print('')
# 使用enumerate:
for index, value in enumerate(str_list):
    print(index,value,end=' ')
print('')
# 使用while循环:
i = 0
while i<len(str_list):
    print(str_list[i],end=' ')
    i+=1
print('')
Chile b c 
Chile b c 
0 Chile 1 b 2 c 
Chile b c 

Python求出两个列表相同的元素和不同元素,用列表推导式可以很好的解决

list1 = [1,3,65,2,7]
list2 = [3,2,5,4]
c = [x for x in list1 if x in list2]
d = [y for y in (list1+list1) if y not in c]
[3, 2]
[1, 65, 7, 5, 4]

Python 对列表中的每个数字加一

# 方法一:
list1 = [0,1,2,3,4,5]
fot i ,element in enumerate(list1):
	list1[i] = element+1
print(list1)

# 方法二:
list2 = [0,1,2,3,4,5]
list2 = [i for i in map(lambda x:x+1 ,list2)]
print(list2)

# 方法三:
list3 = [0,1,2,3,4,5]
list3 = [i+1 for i in list3]'
print(list3)

Python 对列表进行排序
1)list.sort()方法,直接修改原列表
sort()函数用于对原列表进行排序

语法:list.sort(reverse=False)
# reverse --排序规则  默认reverse=False 升序, reverse=True 降序 
a = [5,2,3,1,4]
a.sort()
print(a)
[1,2,3,4,5]
  1. sorted()方法,返回一个新的已排序列表
a = [5,2,3,1,4]
b = sorted(a,reverse=False) # 默认升序
print(b)
[1,2,3,4,5]

Python 删除list中元素使用del

listx = [1,2,3,4,5]
del listx[0]
print(listx)
[2,3,4,5]

之后还会更新,欢迎关注

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值