导航:首页 > 编程语言 > python字典嵌套列表

python字典嵌套列表

发布时间:2023-09-25 03:46:05

‘壹’ python如何实现列表嵌套字典,字典内相同key去重,字典内另外一个key的value相加

按照你的要求编写的字典内相同key合并的Python程序如下

l=[{'a':1,'b':'haha'},{'a':3,'b':'haha'},{'a':2,'b':'xiaoming'}]

result=[]

temp=[]

for i in range(len(l)):

flag=False

suma=l[i]['a']

b=l[i]['b']

for j in range(i+1,len(l)):

if l[i]['b']==l[j]['b'] and (j not in temp):

flag=True

temp.append(i)

temp.append(j)

suma=suma+l[j]['a']

if i not in temp or flag==True:

result.append({'a':suma,'b':b})

print(result)

源代码(注意源代码的缩进)

‘贰’ Python字典推导法,怎么输出嵌套字典

实际上各种推导式的本质就是for循环, 它们之间的区别只是取值方式的不同和表达式的不同
首先, 字典的取值方式有两种: 按key取值, 使用get方法取值
其次, 字典推导式的表达式部分需要写成 key:value 的形式
如果要使用字典推导式推导一个嵌套字典
例如:
infos = {"张三":{ "age":18, "salary":5000},
"李四":{"age":19, "salary":8000},
"王五":{ "age":20, "salary":6000}}
要从infos这个嵌套的字典中推导出一个形如{"张三":5000, "李四":8000, "王五":6000}的字典
首先可以考虑最内层的推导式:
names = [name for name in infos]
这样就得到了一个姓名的列表: ["张三", "李四", "王五"]
再迭代这个列表, 生成字典的每一项, 于是字典生成式应该像下面这样:
salary_dict = {name:薪资 for name in names}
在这里, 因为name正好是infos这个字典的key, 所以可以使用name从字典infos中取出对应的薪资, 于是有下面的形式:
salary_dict = {name:infos[name]["salary"] for name in names}
这里就用到的字典的用key取值的方式, 当然, 也可以用get方法取值, 例如下面的形式:
salary_dict = {name:infos.get(name).get("salary") for name in names}
这两种方式都是可以的, 根据个人喜好选择就好
为了显得逼格更高, 可以把names的列表推导式和salary_dict的字典推导式结合起来, 于是就得到下面的形式:
salary_dict = {name:infos[name]["salary"] for name in (name for name in infos)}
到这里, 你会发现表达式里有好多name, 显得非常重复, 实际上这里并不需要列表推导式, 直接从字典里迭代出来的key就是name了, 所以最终的形式如下:
salary_dict = {name:infos[name]["salary"] for name in infos}
这里为了得到一个比较简单的结果而绕了一个大圈子, 是为了说明更加通用方法, 对于这个例子, 很容易就能得出结果的哈

‘叁’ python的嵌套字典问题

打印一下id内存地址

第一次循环赋值 new_alien 就是已经锁定了id内存地址,下面2次循环都是对内存地址上的赋值

‘肆’ Python字典嵌套字典排序,该怎么处理

感觉这个需求有些许问题,因为通常对比排序的都是同一类型的数据,譬如aaa代表是年龄,bbb代表的是工资,等等... 所以不会拿自己的年龄和工资作一次排序。

# 要做的话,可以手动给它并成一个新列‘sort_key’。 obj就是你最外层的a,免得同名混淆

for i in obj:

obj[i]['sort_key'] = obj[i].values()[0]

# 目的是构造出这样的结构:

# ('c', {'sort_key': 1, 'ccc': 1}), ('d', {'sort_key': 2, 'ddd': 2}), .....)

print(sorted(obj.items(), key = lambda x:x[1]['sort_key']))

‘伍’ python 列表嵌套字典再嵌套字典怎么排序

sorted(my_list,key=lambda x:x['location']['left'])

‘陆’ python字典的基本操作

python字典的基本操作如下:

查询字典

字典里面可以嵌套字典,嵌套列表。

‘柒’ Python列表嵌套多个字典,循环读取字典“名称”,并输出

cloris={'Owner':'jack','kind':'dog'}
brinkley={'Owner':'tom','kind':'cat'}
pets=['cloris','brinkley']
foriinpets:
print('%s:'%i)
print('Owner:%s,kind:%s'%(eval(i)['Owner'],eval(i)['kind']))

蓦然回首···还是这个好看

阅读全文

与python字典嵌套列表相关的资料

热点内容
为什么安卓没白鸟 浏览:233
程序员投行 浏览:313
java多线程读取文件 浏览:145
香港外贸服务器有什么好处 浏览:612
邓伦参加密室大逃脱结果变成团宠 浏览:847
购买文件服务器怎么选择 浏览:720
空调压缩机高压报警 浏览:498
u盘数控程序放哪个文件夹 浏览:853
python模拟微信登录其他APP 浏览:301
绑扎钢筋加密区规范 浏览:671
怎么更换手机壁纸安卓 浏览:808
闲鱼app卖手机怎么走验机 浏览:821
安卓三个按键音怎么关闭 浏览:64
esp8266手机app源码 浏览:713
服务器如何建立多个站点 浏览:151
加密狗可以在笔记本上做账吗 浏览:888
学生云服务器推荐 浏览:509
android银行卡快捷支付 浏览:828
海口手机直播系统源码 浏览:416
怎么给加密货币加图标 浏览:999