精华内容
下载资源
问答
  • 目录Python问题解决(一),重复向列表中添加字典...利用一个字典为过渡重复向一个列表中添加字典作为元素时,列表中每个元素都是最后添加的那个,而不是按顺序输入的字典 源码片段:完整代码请查看开头的博客链接
  • 前言 在程序中使用字典进行数据信息统计时,由于字典是无序的所以打印字典时内容也是无序的。因此,为了使统计得到的...排序用sorted内置函数,关键字key参数用lambda表达式取出字典中x值作为排序依据,关键字reverse
  • 列表中嵌套字典,根据字典...可以列表中的字典先放入到一个大字典中,对整个字典进行排序,在排序完成后,再转换为列表包含字典的形式即可 现在有一个列表,根据每个字典进行排序。 dict_list = [{"ming": 8...

    转载:https://blog.51cto.com/chier11/2415974

    列表中嵌套字典,根据字典的值排序

    格式:
    数据类型为列表,列表元素为字典。由字典组织的列表形式。

    分析:
    可以将列表中的字典先放入到一个大字典中,对整个字典进行排序,在排序完成后,再转换为列表包含字典的形式即可

    现在有一个列表,根据每个字典的值进行排序。

    dict_list = [{"ming": 87}, {"mei": 93}, {"hua": 68}, {"jon": 75}, {"ston": 100}, {"jack": 56}]

    思路:可以将列表中的字典先放入到一个大字典中,对整个字典进行排序,在排序完成后,再转换为列表包含字典的形式即可。

    from operator import itemgetter
    dict_list = [{"ming": 87}, {"mei": 93}, {"hua": 68}, {"jon": 75}, {"ston": 100}, {"jack": 56}]
    mid_dict = {key: value for x in dict_list for key, value in x.items()}
    mid_list = sorted(mid_dict.items(), key=itemgetter(1))
    fin_list = [{x[0]: x[1]} for x in mid_list]
    例子:T=[{'xgei-0/0/1/1': '9'}, {'xgei-0/0/1/2': '20'},{'xgei-0/0/1/15': '12'}]
    def Sorted_listdict(dict_list ):
        New_List=[]
        New_D={}
        mid_dict = {key: value for x in dict_list for key, value in x.items()}  ###格式写法。列表与字典的结构
        #print (mid_dict)
        ordered_dict = OrderedDict(sorted(mid_dict.items(), key=lambda t: int(t[1]), reverse=True))
        #print (type(ordered_dict),ordered_dict)
        #<class 'collections.OrderedDict'> OrderedDict([('xgei-0/0/1/2', '20'), ('xgei-0/0/1/15', '12'), ('xgei-0/0/1/1', '9')])
        for x in ordered_dict:
            New_D[x]=mid_dict[x]
        New_List.append(New_D)
        print (New_List)
        return New_List

    1.sorted函数按key值对字典排序
    先来基本介绍一下sorted函数,sorted(iterable,key,reverse),sorted一共有iterable,key,reverse这三个参数。
    其中iterable表示可以迭代的对象,例如可以是 dict.items()、dict.keys()等,key是一个函数,用来选取参与比较的元素,reverse则是用来指定排序是倒序还是顺序,reverse=true则是倒序,reverse=false时则是顺序,默认时reverse=false。
    要按key值对字典排序,则可以使用如下语句:

    >>> dict2={
    ... '11': {'RX': '-11', 'TX': '-11'},
    ... '1': {'RX': '-1', 'TX': '-1'},
    ... '2': {'RX': '-2', 'TX': '-2'},
    ... '3': {'RX': '-3', 'TX': '-3'},
    ... '20': {'RX': '-20', 'TX': '-20'},
    ... '4': {'RX': '-4', 'TX': '-4'},
    ... '5': {'RX': '-5', 'TX': '-5'},
    ... '30': {'RX': '-30', 'TX': '-30'},
    ... '6': {'RX': '-6', 'TX': '-6'},
    ... '7': {'RX': '-7', 'TX': '-7'}
    ...  }
    >>> sorted(dict2.keys())
    ['1', '11', '2', '20', '3', '30', '4', '5', '6', '7']
    直接使用sorted(d.keys())就能按key值对字典排序,这里是按照顺序对key值排序的,如果想按照倒序排序的话,则只要将reverse置为true即可。

    2.sorted函数按value值对字典排序
    要对字典的value排序则需要用到key参数,在这里主要提供一种使用lambda表达式的方法,如下:

    >>> sorted(dict2.items(),key=lambda i:i[0])
    [('1', {'RX': '-1', 'TX': '-1'}), ('11', {'RX': '-11', 'TX': '-11'}), ('2', {'RX': '-2', 'TX': '-2'}), ('20', {'RX': '-20', 'TX': '-20'}), ('3', {'RX': '-3', 'TX': '-3'}), ('30', {'RX': '-30', 'TX': '-30'}), ('4', {'RX': '-4', 'TX': '-4'}), ('5', {'RX': '-5', 'TX': '-5'}), ('6', {'RX': '-6', 'TX': '-6'}), ('7', {'RX': '-7', 'TX': '-7'})]
    >>> sorted(dict2.items(),key=lambda i:int(i[0]))
    [('1', {'RX': '-1', 'TX': '-1'}), ('2', {'RX': '-2', 'TX': '-2'}), ('3', {'RX': '-3', 'TX': '-3'}), ('4', {'RX': '-4', 'TX': '-4'}), ('5', {'RX': '-5', 'TX': '-5'}), ('6', {'RX': '-6', 'TX': '-6'}), ('7', {'RX': '-7', 'TX': '-7'}), ('11', {'RX': '-11', 'TX': '-11'}), ('20', {'RX': '-20', 'TX': '-20'}), ('30', {'RX': '-30', 'TX': '-30'})]
    >>>

    这里的d.items()实际上是将d转换为可迭代对象,
    迭代对象的元素为 ('1', {'RX': '-1', 'TX': '-1'}), ('2', {'RX': '-2', 'TX': '-2'}), ('3', {'RX': '-3', 'TX': '-3'}), ('4', {'RX': '-4', 'TX': '-4'}), ('5', {'RX': '-5', 'TX': '-5'}), ('6', {'RX': '-6', 'TX': '-6'}), ('7', {'RX': '-7', 'TX': '-7'}), ('11', {'RX': '-11', 'TX': '-11'}), ('20', {'RX': '-20', 'TX': '-20'}), ('30', {'RX': '-30', 'TX': '-30'}),items()方法将字典的元素 转化为了元组,
    而这里key参数对应的lambda表达式的意思则是选取元组中的第二个元素作为比较参数(如果写作key=lambda item:item[0]的话则是选取第一个元素作为比较对象,
    也就是key值作为比较对象。lambda x:y中x表示输出参数,y表示lambda 函数的返回值),所以采用这种方法可以对字典的value进行排序。
    注意排序后的返回值是一个list,而原字典中的名值对被转换为了list中的元组。

    3、使用OrderDict函数排序(一般适用于python3以上,该函数为3新增)

    >>> dict1={
    ... '11': {'RX': '-11', 'TX': '-11'},
    ... '1': {'RX': '-1', 'TX': '-1'},
    ... '2': {'RX': '-2', 'TX': '-2'},
    ... '3': {'RX': '-3', 'TX': '-3'},
    ... '20': {'RX': '-20', 'TX': '-20'},
    ... '4': {'RX': '-4', 'TX': '-4'},
    ... '5': {'RX': '-5', 'TX': '-5'},
    ... '30': {'RX': '-30', 'TX': '-30'},
    ... '6': {'RX': '-6', 'TX': '-6'},
    ... '7': {'RX': '-7', 'TX': '-7'}
    ...  }
    >>> from collections import OrderedDict
    >>> ordered_dict = OrderedDict(sorted(dict1.items(), key=lambda t: t[0]))
    >>> print (ordered_dict)
    OrderedDict([('1', {'RX': '-1', 'TX': '-1'}), ('11', {'RX': '-11', 'TX': '-11'}), ('2', {'RX': '-2', 'TX': '-2'}), ('20', {'RX': '-20', 'TX': '-20'}), ('3', {'RX': '-3', 'TX': '-3'}), ('30', {'RX': '-30', 'TX': '-30'}), ('4', {'RX': '-4', 'TX': '-4'}), ('5', {'RX': '-5', 'TX': '-5'}), ('6', {'RX': '-6', 'TX': '-6'}), ('7', {'RX': '-7', 'TX': '-7'})])
    >>> new_ordered_dict = OrderedDict(sorted(dict1.items(), key=lambda t: int(t[0])))
    >>> print (new_ordered_dict)
    OrderedDict([('1', {'RX': '-1', 'TX': '-1'}), ('2', {'RX': '-2', 'TX': '-2'}), ('3', {'RX': '-3', 'TX': '-3'}), ('4', {'RX': '-4', 'TX': '-4'}), ('5', {'RX': '-5', 'TX': '-5'}), ('6', {'RX': '-6', 'TX': '-6'}), ('7', {'RX': '-7', 'TX': '-7'}), ('11', {'RX': '-11', 'TX': '-11'}), ('20', {'RX': '-20', 'TX': '-20'}), ('30', {'RX': '-30', 'TX': '-30'})])
    >>> type(ordered_dict)       ##返回有序字典
    <class 'collections.OrderedDict'>
    展开全文
  • 这段代码可以字典的所有key输出为一个数组 d2 = {'spam': 2, 'ham': 1, 'eggs': 3} # make a dictionary print d2 # order is scrambled print d2.keys() # create a new list of my keys 希望本文所述对大家的...
  • Python:列表值字典

    千次阅读 2016-09-17 22:39:51
    大脑一不运转,就干啥都不得劲,这几天中秋节,“闲”有了,又开始捣鼓编程。这里碰到个低级问题,跟...在python 中 列表值是支持为字典的,比如: 列表值为数据字典 ​但当时,我鬼使神差的给变量起名class

    大脑一不运转,就干啥都不得劲,这几天中秋节,“闲”有了,又开始捣鼓编程。这里碰到个低级问题,跟大家分享一下,大家一定要引以为戒,因为当花了不少时间终于解决问题时,我自己都恍然大笑,要不是为了维持形象,都想抽自己。

    语言:Python(AI必备)

    问题及基本知识描述:

    在python 中 列表值是支持为字典的,比如:

    列表值为数据字典

    ​但当时,我鬼使神差的给变量起名class, class啊!!!!!!!!!

    class = [lloyd,alice,tyler]

    MD,编译一直报错,网上找各种方法,最后发现是我眼瞎啊!!

    为了避免​类似错误,再次贴一下Python的保留字符:

    **********************************************************8

    保留字     说明

    and 用于表达式运算,逻辑与操作

    as用于类型转换

    assert断言,用于判断变量或条件表达式的值是否为真

    break中断循环语句的执行

    class用于定义类

    continue继续执行下一次循环

    def用于定义函数或方法

    del删除变量或者序列的值

    elif条件语句 与if else 结合使用

    else条件语句条件语句,与if,elif结合使用。也可以用于异常和循环使用

    except except包括捕获异常后的操作代码,与try,finally结合使用

    exec用于执行python语句

    for循环语句

    finally用于异常语句,出现异常后,始终要执行finally包含的代码块。与try,except结合使用from用于导入模块,与import结合使用。

    global定义全局变量

    if条件语句,与else,elif结合使用

    import用于导入模块,与from 结合使用

    in判断变量是否存在序列中

    is判断变量是否为某个类的实例

    lambda定义匿名函数

    not用于表达式运算,逻辑非操作

    or用于表达式运算,逻辑或操作

    pass空的类,函数,方法的占位符

    print打印语句

    raise异常抛出操作

    return用于从函数返回计算结果

    try包含可能会出现异常的语句,与except,finally结合使用

    while循环语句

    with简化Python的语句

    yield用于从函数依次返回值​​​​​​​​​​​

    以下划线开始或者结束的标识符通常有特殊的意义。例如以一个下划线开始的标识符(如 _foo)不能用frommodule import*语句导入。前后均有两个下划线的标识符,如__init__,被特殊方法保留。前边有两个下划线的标识符,如__bar,被用来实现类私有属性。

    展开全文
  • python获得列表中的字典中的

    千次阅读 2018-12-27 11:37:52
    python获得列表中的字典中的 例子:com = [ {"name":"日本一日游","count":4888,"price":90}, {"name":"泰国一日游","count":4888,"...

    python获得列表中的字典中的值
    例子:com = [ {"name":"日本一日游","count":4888,"price":90}, {"name":"泰国一日游","count":4888,"price":90} ]
    代码示例

    print(com[0]["name"])
    
    展开全文
  • python 函数名作为字典值进行调用

    千次阅读 2019-08-22 15:32:09
    python练习的一些小知识点python学习函数名作为字典value进行函数调用功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定...

    python学习

    哇哦,第一次写博客诶!跟anaconda notebook 好像呀

    函数名作为字典value进行函数调用

    通过字典的方法对函数进行调用,有些类似于switch方法
    可以通过输入key,调用需要的函数

    def a():
        print('aa')
    def b():
        print('bb')
    dic = {1:a,2:b}
    #调用函数a()
    dic[1]()
    

    输出

    aa
    

    通过用户输入来选择执行的函数

    cmd = input('输入像要调用函数的key:\n')
    dic[int(cmd)]()
    

    注意点

    1. 字典里函数名不加括号,
    2. 调用时在字典后加括号dickey
    3. 这个编辑工具怎么输括号呀?

    枚举函数enumerate()

    def show_list():
        print('=' * 100)
        if not show_list:
            print('还未购买商品')
        else:
            title = "%-5s|%15s|%40s|%10s|%4s|%10s" % \
                    ("ID", "条码", "商品名称", "单价", "数量", "小计")
            print(title)
            print("-" * 100)
            sum = 0
            for i, item in enumerate(shop_list):
                id = i + 1
                code = item[0]
                name = repository[code][1]
                price = repository[code][2]
                number = item[1]
                amount = price * number
                sum = sum + amount
                
                line = "%-5s|%17s|%40s|%10s|%4s|%10s" % \
                    (id, code, name, price, number, amount)
    
                print(line)
            print("-" * 100)
            print("    sum:", sum)
        print("=" * 100)
    

    i,item = enumerate(list)
    i 获得索引, item获得列表元素

    enumerate() 函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。还可添加索引的start位置
    enumerate(sequence, [start=0])

    >>>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')]
    

    判断类型的内置函数

    print(isinstance(1,int))
    print(isinstance(1, float))
    # 判断1是整型、浮点型
    

    输出

    True
    False
    
    展开全文
  • Python字典中的列表字典的构造方法

    万次阅读 多人点赞 2018-08-01 08:48:57
    1、列表的构造方法 dic = {} dic.setdefault(key,[]).append(value) *********示例如下****** &gt;&gt;dic.setdefault('a',[]).append(1) &gt;&gt;dic.setdefault('a',[]).append(2) &...
  • python3 通过列表作为键 产生字典

    千次阅读 2019-08-16 14:05:26
    print(dict.fromkeys(['a','b','c'])) >>>{'a': None, 'b': None, 'c': None}
  • 之后用 :clst_dic[keyName].append(str) 对字典中的一个键赋值时,所有的键都被赋了相同的。很是气愤,当把列表改为其他类型时,如:clst_dic = {}.fromkeys(randomL, '') ,就不会出现是这个问题。所以猜测是
  • python 列表中含有字典 读取value

    千次阅读 2020-03-18 08:53:23
    法一: stu_list = [{"name": "zoey", "age": "18", "hobby": "eating"}, {"hobby1": "singing"}, {"hobby2": "sleeping"}] res = [item[key] for item in stu_list for key in item] print(res) ...
  • Python 列表&字典作为函数的参数

    千次阅读 2018-09-06 14:38:13
    这篇笔记主要记录,列表作为函数参数传递时的深浅拷贝问题 #!/usr/bin/env python # -*- coding: utf-8 -*- ''' 这篇笔记主要记录,列表作为函数参数传递时的深浅拷贝问题 ''' import copy def list_append(l=...
  • fromkeys() 函数用于创建一个新字典,以...seq -- 字典键值列表。 value -- 可选参数, 设置键序列(seq)对应的,默认为 None。 返回值 该方法返回一个新字典。 两种用法: 第一种:不指定: x = ...
  • 字典值存储列表 示例构建了列表相同值的索引的字典键值对,0,1,2,3,4,6这些索引的值都是3,5索引值是1,分别作为字典的键和值 方法一、dict.setdefault(key, default=None) key -- 查找的键值。 default --...
  • 1、列表或者字典变量可以当作布尔变量,当列表或者字典为空时,其布尔为false
  • 1、列表可以作为集合的元素吗? 2、集合可以作为列表的元素吗? 3、元组可以作为集合的元素吗? 4、集合可以作为元组的元素吗? 5、字典可以作为集合的元素吗? 对于上面这五个问题,是不是不太懂呢?接下来我会一一...
  • In Python 2.7 , I could get dictionary keys , values , or items as a list: 在Python 2.7中 ,我可以字典键 ,
  • 列表生成式 取下标为i的和i+1 的 然后循环 起始设为0,终止设为列表的长度 设置步长为2后的为 02468而 i+1的则为13579 print({list[i]:list[i+1] for i in range(0,len(list),2)}) ...
  • python使用字典中键的,作为变量使用 python中不存在双引号可以读取变量的说法,所以就需要用别的方法调用引号里面的变量 下面展示一些 内联代码片。 for i in range(1, 41): # row message01 = sheet.cell(row=i, ...
  • list为什么不能作为字典的key

    千次阅读 2018-07-26 16:24:02
    List为什么不能作为key 至于这个问题,最直接的答案就是:list没有支持__hash__方法,那么为什么呢? 对于list的hash函数,我们可能有下面两种实现的...用相同的list作为key去字典中找某个元素可能会得到不同的结...
  • 两个列表合并为一个字典函数list_dic(list1,list2)可以直接复制拿走 传入的参数为两个列表,list1准备作为key,list2准备作为value,key和value位置一一对应。 def list_dic(list1,list2): ''' two lists ...
  • Python 为什么list不能作为字典的key?

    千次阅读 2019-04-11 23:50:38
    很多Python初学者经常会有这样的...为什么tuple可以作为字典的key,list不可以?要理解这个问题,首先要明白python的字典工作原理。 1.Python的字典是如何工作的 在Python中,字典也就是一个个的“映射”,将k...
  • Python列表元素为字典时,如何根据其中某个相同的键值进行元素合并
  • 初始化字典的第一反应是使用dict.fromkeys(),如果value是int之类的简单...使用dict.fromkeys()初始化得到的字典改动一个value其他的value也会跟随变化,这是因为后者每个key对应的value都指向了同一个列表...
  • 如: keyword = { '11:30.0' : ( 50000 , 13.96 ) , '12:16.0' : ( 54500 , 13.20 ...这样接下来就可以将结果转换成numpy数组切片 ...参考文章:python取出字典中的所有的两种方法
  • 假定我们有Date 和 Value 两个长度相同的List,现在我们需要生成一个Dict,其中的键和分别使用Date和Value这两个List中的元素。下面是两种生成字典的方法: In [444]: keys = ['a','b','c','d','e'] In [445]: ...
  • 生产环境(manufacturing ...一个列表列表下面n个字典,每个字典是一条数据,根据一条数据中的一项进行排序, 例如 storeComRes = [{'difference': 1.2, 'name': 'Jones', 'id': 1003}, {'difference': 2.4...
  • python字典转换为列表

    千次阅读 2020-08-24 12:10:15
    直接放代码,看得比较清晰 dict={'name':'wsm', 'age':'22', 'sex':'female'} print(list(dict)) ...list(dict)和list(dict.keys())几乎作用是一样,都是把key值作为list的元素 list(dict.values())是value(

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 234,725
精华内容 93,890
关键字:

列表可以作为字典的值