python-关于一个二维列表,按照给定一个顺序列表来进行排序(个人总结,不喜勿喷)
假设给一个列表,[u'赵', u'钱', u'孙', u'李', u'周', u'吴']
数据列表,[[u'钱', 1], [u'吴', 2], [u'周', 3], [u'赵', 4], [u'孙', 5]]
我们获取的数据需要按照这个列表的顺序进行排序,按照之前python介绍的sorted中的key无法使用给定的顺序列表来排序,所以写了一个方法。
如果有更好的写法,欢迎分享!
# -*- coding: utf-8 -*-
list_name = [u'赵', u'钱', u'孙', u'李', u'周', u'吴']
print list_name
sort_name = [[u'钱', 1], [u'吴', 2], [u'周', 3], [u'赵', 4], [u'孙', 5]]# 1.先取列表中的需要作为排序参数的列
list_sort = []
for i in sort_name:list_sort.append(i[0])# 2.判断设置的元素对比列表是否包含数据中的所有元素,不包括就加到对比列表后面
list_diff = list(set(list_sort) - set(list_name))
if list_diff:list_name.extend(list_diff)# 3.再对于这个列按照我们想要的顺序进行排序
# 之所以要排序一个作为排序参数的列表,因为后面排序,是替换列表的内容,如果需要排序列表的参数列的个数少于比对的列表,就会报错
list_sort = sorted(list_sort, key=list_name.index)# 4.构造一个列表,与需要排序的列表相同
list_sort_end = [i for i in sort_name]# 5.从需要排序的列表获取元素,然后获取这个元素在排序参数列表中的位置,修改构造列表中的元素位置
for i in sort_name:name_index = list_sort.index(i[0])list_sort_end[name_index] = i
print list_sort_end
python-关于一个二维列表,按照给定一个顺序列表来进行排序(个人总结,不喜勿喷)相关推荐
- 已知一个二维数组A 表示一个矩阵,求AT。 其中,AT 表示矩阵的转置。矩阵转置的含义:表示把一个矩阵行列互换。
已知一个二维数组A 表示一个矩阵,求AT. 其中,AT 表示矩阵的转置.矩阵转置的含义:表示把一个矩阵行列互换. //传入需要验证的数组,在main里面调用该方法public static void ...
- 单词搜索:给定一个二维网格和一个单词,找出该单词是否存在于网格中java实现
题目描述 https://leetcode-cn.com/problems/word-search 给定一个二维网格和一个单词,找出该单词是否存在于网格中. 单词必须按照字母顺序,通过相邻的单元格内的 ...
- 求一个二维数组外围元素之和_C++数组作为函数的参数(学习笔记:第6章 04)...
数组作为函数的参数[1] 数组元素作实参,与单个变量一样. 数组名作参数,形.实参数都应是数组名(实质上是地址,关于地址详见后续章节),类型要一样,传送的是数组首地址.对形参数组的改变会直接影响到实参 ...
- 教你用Python生成个性二维码
编程就像做爱,你得为一个错误提供一辈子的支持 之前见到的二维码都是这样的,很是枯燥,我们需要一些个性化的东西 今天就给大家介绍一个库专门做二维码的,它叫qrcode,你可以使用pip安装它 这个库使用 ...
- python中求二维列表的最大最小值_python+numpy按行求一个二维数组的最大值方法
python+numpy按行求一个二维数组的最大值方法 问题描述: 给定一个二维数组,求每一行的最大值 返回一个列向量 如: 给定数组[1,2,3:4,5,3] 返回[3:5] import nump ...
- Python 创建一个二维列表
Python 创建一个二维列表 空二维列表 lis=[[] for i in range(5)]for i in range(5):lis.append([]) 普通二维列表 lis=[[i for ...
- python求二维数组各行最大值_python+numpy按行求一个二维数组的最大值方法
问题描述: 给定一个二维数组,求每一行的最大值 返回一个列向量 如: 给定数组[1,2,3:4,5,3] 返回[3:5] import numpy as np x = np.array([[1,2,3 ...
- python如何初始化一个二维数组_使用Python实现一个简单的商品期货布林指标突破策略...
布林指标突破策略,思路非常简单.使用Python语言编写该策略,也非常容易实现,加上回测配置信息,有70行代码,实际可以更加精简,鉴于教学策略,没有使用难懂的Python语法,使用的是比较基础的语句. ...
- python随机生成二维列表_对python产生随机的二维数组实例详解
对python产生随机的二维数组实例详解 最近找遍了python的各个函数发现无法直接生成随机的二维数组,其中包括random()相关的各种方法,都没有得到想要的结果.最后在一篇博客中受到启发,通过列 ...
最新文章
- SpringBoot-hello world
- 大学计算机组装与维修考试题,【校选修】计算机组装与维修 考试题
- 009 自动打怪功能的设计和实现
- JZOJ 1251. 收费站
- HDU - 4035 Maze(概率dp)
- javascript . 05 json的组成、for...in 遍历对象、简单数据类型与复杂数据类型的传值与传址、内置对象...
- anaconda管理不同版本Python
- Unity3d读取XML配置文件
- KGSF:通过基于语义融合的知识图谱来改善会话推荐系统 KDD2020
- Mac中找不到.bash_profile则自己创建.bash_profile文件
- Windows Mobile 中怎样获得当前应用程序所在路径
- Go实战--二维码生成server
- 关于s19赛季服务器维修,王者荣耀S19赛季版本更新问题及解决办法一览
- 《富兰克林自传》的读后感作文4300字
- pdf怎么编辑修改内容?以下方法你都知道吗
- 计算机无法启动vm服务,电脑中的虚拟机VM开机停留在dhcp无法启动如何解决
- IOS 逆向开发(一)密码学 非对称加密RSA
- jupyter notebook第三章numpy库的一些案例分析加相关函数的解析
- 游戏盾-一个让你放心的盾
- 联想童夫尧:韬光养晦、空中换引擎,加速企业级市场增长
热门文章
- 判断季节,是春夏秋冬哪一个季节
- 暴力拒绝白嫖,著名开源项目作者删库跑路,数千个应用程序无限输出乱码
- 谷歌浏览器无法卸载和无法安装的问题
- python中的注释有哪些符号_python表示注释的符号是什么
- log in stackflow
- Error: Could not find or load main class XXX 或 Main class cannot resolve XXX
- xscale linux内核编译,Building arm-linux toolchain for ARM/XSCALE
- 转载:HP大中华区总裁孙振耀退休感言(同勉)
- 苹果HomeKit如此被偏爱的原因是什么?
- 得力M2500打印机定影器错误简单分析