作者:小5聊基础
简介:一只喜欢全栈方向的程序员,欢迎咨询,尽绵薄之力答疑解惑
编程原则:Write Less Do More
编号 | 语言或插件 | 修饰符 | 说明 |
---|---|---|---|
1 | python | def | 定义方法关键词 |
2 | python | list() | 数列,就是数组,方括号括起来值,遍历只能获取到值 |
3 | python | tule() | 元组,括号括起来值,遍历可获取到值和下标 |
4 | python | enumerate() | 函数用于遍历序列中的元素以及它们的索引 |
5 | python | len() | 统计长度 |
6 | python | 逆序小技巧 | [1,2,3,4,5][::-1] |
【数列和元组知识点说明】
1)list,数列,结合for循环遍历时,只能遍历值,无法获取到下标,如下方式会报错
格式:lst=[1,2,3,4,5]
2)正确遍历方式
3)如果需要遍历到下标,可以通过增加多一个变量,如下
index=0
for value in ['a','b','c']:
index+=1
print(value)
4)还有一种方式就是将数列和元组通过enumerate方式遍历
格式,注意顺序,第一个是索引,第二个参数是值:
for index,value in enumerate(['a','b','c']):
print(f'index={index},value={value}')
5)数列逆序输出小技巧,-1表示从最后一个值反序输出[1,2,3,4,5][::-1]
【自定义排序规则】
1)按照order的元素作为lst对应位置的元素的应该顺序
2)并按照该顺序重新排列lst,返回排序后的结果列表
3)支持逆序
【自定义排序编码】
1)定义函数名为,sort_by
def sort_by(lst:list, order:list, reverse=False)->list:
pass
2)定义两组list数列如下
a = ['Lee', 'Bush', 'Danny', 'Juan', 'James', 'Liam']
b = [3, 2, 6, 4, 1, 5]
3)通过上面的一些知识点了解,即可完成数列的自定义正序排序和逆序排序
- 完整代码如下
#!/usr/bin/python3
# -*- coding: utf-8 -*-
# 2022.06.21 12:00
import sys
def sort_by(lst:list, order:list, reverse=False) -> list:
pass
new_list = []
for i in range(len(lst)):
new_list.append(i)
for index,value in enumerate(lst):
position = order[index] - 1
new_list[position] = value
if reverse==True:
return new_list[::-1]
else:
return new_list
a = ['Lee', 'Bush', 'Danny', 'Juan', 'James', 'Liam']
b = [3, 2, 6, 4, 1, 5]
print(sort_by(a, b))
# ['James', 'Bush', 'Lee', 'Juan', 'Liam', 'Danny']
print(sort_by(a, b, True))
# ['Danny', 'Liam', 'Juan', 'Lee', 'Bush', 'James']