首页
学习
活动
专区
圈层
工具
发布

python中将dict存入list中,list值仍然随着dict变化【Flask】

情景 在一次将数据库查询结果手动转化为json数据(obj转json)的过程中,发现前端得到的每条数据都是一样的,,,,简述为,列表存入字典值后值会变化,代码如下: res = orm.query_all...() data = [] res_dict = {} for item in res: res_dict['acm_id'] = item.acm_id...结果…可想而知 列表中千篇一律的同一组数据,保留了N遍最后一次dict的值 原因 python 为提高性能,优化内存,像是dict2=dict1并没有真正的将该字典在内存中再次创建,只是指向了相同的object...在该案例中,对象append到list 中,list存的是dict的地址 解决 拷贝得到一个新字典,每次拷贝都会开辟一块空间存值 dict2=dict1.copy() 修改后的代码 res = orm.query_all...res_dict['acm_title'] = item.acm_title data_dict = res_dict.copy() data.append(data_dict

58840
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python 条件语句中的elif

    条件语句中的elif 什么是elif elif(或者如果)对于命题的非第一次的多种判断 , 每一种判断条件对应一组业务代码 条件语句的说明 对于首次if判断不满足后 , 其他条件的判断语句 用法 if...bool_result : do elif bool_result: elifdo # 当前elif语句对应的语法块 elif bool_result: elifdo # 缩进等级与do语法块一致...else: elsedo 参数 elifdo : 当前elif语句对应的python代码 返回值 elif属于语法 , 没有返回值 说明 条件语句中满足一个条件后 , 将退出当前条件语句 每个条件语句中仅有且必须有一个...= 10 if number > 10: print('number的值大于10') elif 5 < number <= 10: print('number的值在5和10之间') elif...5 >= number > 0: print('number的值是1~5') else: print('number的值是0或者复数') print('finish') users

    2K10

    python字典dict方法_python中dict的用法

    3.item: 4.依次打印key和value: 5.元素值和对应的下标索引(enumerate()): 一.字典(dict)的概念: Python字典是另一种可变容器模型,可存储任意类型对象。...key print(dict.keys()) #values():返回包含value的列表 print(dict.values()) #items():返回包含(键值,实值)元组的列表 print(dict.items...,不会用到自己设置的value; 如果key值不存在.返回None,并且把新设置的key和value保存在字典中; 如果key值不存在,但设置了value,则返回设置的value; #字典的定义 my_dict...) 3.get: 格式:字典名.get(k,value) 如果key值存在,那么返回对应字典的value,不会用到自己设置的value; 如果key值不存在.返回None,但是不会把新设置的key和value...,通过索引 for key,value in my_dict.items(): print(key,value) 5.元素值和对应的下标索引(enumerate()): #5.元素值和对应的下标索引 enumerate

    1.7K20

    python|Python中的dict

    "张三":"20","李四":"21","王五":"22"}#根据key值来查询dict["张三"]#当对应的key不存在是, 程序报错 #get方法能通过key来获取对应的值#当对应的key不存在时...,程序不会报错, 会返回None#如果设置了第二个参数,第二个参数表示默认值, 当对应的key不存在时,会返回#参数2,即默认值value = dict.get["张三"]value = dict.get...["赵六",23] #增加,修改#当key不存在时为增加,key值存在时为修改dict1["小明"] = 32dict1["张三"] = 19 #删除#pop可以根据key来删除字典中的元素,并返回删除的元素的值...#如果key不存在,会报错, 当设置了默认值时,如果key不存在,会返回默认值#最好先判断该key是否存在value = dict1.pop("张三",19)print(value)print(dict1...) #判断存在#字典的成员判断,可以直接判断key是否存在if "张三" in dict1: print("存在")else: print("不存在") 四、总结 字典dict是python

    2.8K10

    Python中的dict

    # dict # Python内置了字典:dict的支持,dict全称dictionary,在其他语言中也称为map,使用键-值(key-value)存储,具有极快的查找速度。... the element of key "Bob"', d) # dict内部的存放顺序和key放入的顺序是没有关系的 # 和list比较,dict有以下几个特点: # 1.查找和插入的速度极快,不会随着...# dict可以用在需要高速查找的很多地方,在Python代码中无处不在,正确使用dict非常重要,需要牢记的第一条就是dict的key必须是不可变对象。...# 这是因为dict根据key来计算value的存储位置,如果每次计算相同的key得出的结果不同,那dict内部就完全混乱了。这个通过key计算位置的算法称为哈希算法。...# 要保证hash的正确性,作为key的对象就不能变。在Python中,字符串、整数等都是不可变的,因此,可以放心地作为key。

    76920

    python的dict,set,list

    字典(dict) dict 用 {} 包围  dict.keys(),dict.values(),dict.items()  hash(obj)返回obj的哈希值,如果返回表示可以作为dict的key ...如果字典中这个键存在,你可以取到它的值。 如果所找的键在字典中不存在,你可以给这个键赋默认值并返回此值。 ...  | 表示联合 & 表示交集 - 表示差集 ^ 差分集里啊 列表(list) 列表是序列对象,可包含任意的Python数据信息,如字符串、数字、列表、元组等。...insert(i,x) 在索引为i的元素前插入对象x。如list.insert(0,x)在第一项前插入对象。返回None。  pop(x) 删除列表中索引为x的表项,并返回该表项的值。...tuple=1,2,3,4,这也可以是一个元组,在不使用圆括号而不会导致混淆时,Python允许不使用圆括号的元组。 和列表一样,可对元组进行索引、分片、连接和重复。也可用len()求元组长度。

    1.2K10

    python dict的list排序

    对于简单的list排序,直接调用内建函数就可以了,但是对于dict的list排序就没有那么直接了,不过,还是有很简洁的办法的,如: >>> ls1 = [{'a' : 1, 'b' : 12}, {'a...obj.get('a')) >>> ls1[{'a': -1, 'b': 22}, {'a': 1, 'b': 12}, {'a': 6, 'b': 42}, {'a': 12, 'b': 32}] >>> python...中dict和list排序 1、list排序    列表的排序是python内置功能,自身含有sort方法    如:    >>> s=[2,1,3,0]    >>> s.sort()   ...[0, 1, 2, 3] 2、dict排序    对字典的排序,因为每一个项包括一个键值对,所以要选择可比较的键或值进行排序     sorted(iterable[, cmp[, key[, reverse...d:d[0]) [('no', 2), ('ok', 1)] 对字典按值排序,用元组列表的形式返回 >>> sorted(d.items, key=lambda d:d[1]) [('ok',

    2.2K20

    Python中set 和dict 的总结

    可以做成员运行: in 和not in   由于使用的是hash算法,时间复杂度为O(1) 字典 dict dict的定义: dict是由key-value 键值对的组成的,可变的,无序的,key不重复的数据的集合...类方法dict.fromkeys(iteranble,value) dict 的方法: 字典元素的访问 d[key]  返回key对应的值value,key不存在抛出KeyError异常 get(key...[,default])  返回key对应的值value,key不存在返回缺省值,如果没有缺省值返回None setdefault(key,[,default]) 返回key对应的值value ,key不存在...,添加kv 对,value设置为默认的给定的值,并返回默认值,如果默认值没有设置,缺省为None 增加 d[key] =value   将key对应的值修改为value ,Key不存在添加新的kv对 update...删除 pop(key[,default])  key存在,移除它,并返回他的value,不存在,返回给定的默认值,默认值未设定,key不存在则抛出KeyError异常。

    1.8K20

    Python - dict 字典的多种遍历方式

    dict 遍历字典中所有的键 x = {'a': 'A', 'b': 'B'} for key in x: print(key) # 输出结果 a b 使用 for key in dict.keys...() 遍历字典的键 字典提供了 keys () 方法返回字典中所有的键 # keys book = { 'title': 'Python 入门基础', 'author': '张三',...() 遍历字典的值 字典提供了 values () 方法返回字典中所有的值 # values book = { 'title': 'Python 入门基础', 'author': '张三...使用 for item in dict.items () 遍历字典的键值对 字典提供了 items () 方法返回字典中所有的键值对 item 键值对 item 是一个元组(第 0 项是键、第 1 项是值...() 遍历字典的键值对 前言 之前有讲过元组在 = 赋值运算符右边的时候,可以省去括号 item = (1, 2) a, b = item print(a, b) # 输出结果 1 2 正式栗子

    62920

    【Python】字典 dict ① ( 字典定义 | 根据键获取字典中的值 | 定义嵌套字典 )

    一、字典定义 Python 中的 字典 数据容器中 , 存储了 多个 键值对 ; 字典 在 大括号 {} 中定义 , 键 和 值 之间使用 冒号 : 标识 , 键值对 之间 使用逗号 , 隔开 ; 集合..., 同样 字典中的 若干键值对中 , 键 不允许重复 , 值是可以重复的 ; 字典定义 : 定义 字典 字面量 : {key: value, key: value, ... , key: value...= dict() 二、代码示例 - 字典定义 在下面的代码中 , 插入了两个 Tom 为键的键值对 , 由于 字典中的 键 不允许重复 , 新的键值对会将老的键值对覆盖掉 ; 代码示例 : """ 字典...': 16, 'Jack': 21} {} {} 三、根据键获取字典中的值 使用 中括号 [] 获取 字典中的值 ; 字典变量[键] 代码示例 : """ 字典 代码示例 """ # 定义 字典 变量...定义嵌套字典 字典 中的 键 Key 和 值 Value 可以是任意的数据类型 ; 但是 键 Key 不能是 字典 , 值 Value 可以是字典 ; 值 Value 是 字典 数据容器 , 称为 "

    5.5K30
    领券