基本用法:3《数据串:字典{}、列表[]》

3 《数据串:字典{}、列表[]》

(1)添加or修改 -- [list元素] \ [dict: ]

1 ## 1. 添加or修改列表元素\字典值 都通过赋值语句
2 list1 = [‘小明‘,‘小红‘,‘小刚‘,‘小美‘]
3 list1[1] = ‘小蓝‘
4 print(list1)
5
6 dict1 = {‘小明‘:‘男‘}
7 dict1[‘小明‘] = ‘女‘
8 print(dict1)

2)相互嵌套

1 ## 2. 相互嵌套
2 students=[[‘小明‘,‘小红‘,‘小刚‘,‘小美‘],[‘小强‘,‘小兰‘,‘小伟‘,‘小芳‘]]
3 print(students[1][3])    # 取出小芳
4
5 scores = {
6     ‘第一组‘:{‘小明‘:95,‘小红‘:90,‘小刚‘:100,‘小美‘:85},
7     ‘第二组‘:{‘小强‘:99,‘小兰‘:89,‘小伟‘:93,‘小芳‘:88}
8     }
9 print(scores[‘第二组‘][‘小芳‘])    # 取出小芳的成绩

3{字典}转换成【list嵌套元组tuple

 1 ## 3.{字典}转换成【list嵌套元组tuple】
 2 x={‘a‘:3,‘b‘:1,‘c‘:5,‘d‘:2}
 3 # AAA. 如果键不是数值,直接变成 列表嵌套元组。
 4 # a=[(‘a‘,3), (‘b‘,1), (‘c‘,5), (‘d‘,2)]
 5 a=sorted(x.items())
 6
 7 y={} # y={3:‘a‘, 1:‘b‘, 5:‘c‘, 2: d‘}
 8 for key,val in x.items():
 9     y[val]=key  # x的键值对调
10
11 # BBB. 如果键是数值,升序排列,变成 列表嵌套元组。
12 # b=[(1,‘b‘), (2,‘d‘), (3,‘a‘), (5,‘c‘)]
13 b=sorted(y.items())

4)【合并字典】【合并列表】

 1 ## 4. 【合并字典】
 2 a={‘a‘:1,‘b‘:2,‘c‘:3}
 3 b= {‘aa‘:11,‘bb‘:22,‘cc‘:33}
 4 d=dict(a,**b) # 相当于列表a.entend(b)
 5 #{‘a‘: 1, ‘b‘: 2, ‘c‘: 3, ‘aa‘: 11, ‘bb‘: 22, ‘cc‘: 33}
 6 print(d)
 7 c = {}
 8 c.update(a) # c={‘a‘:1,‘b‘:2,‘c‘:3}
 9 c.update(b)
10 # c={‘a‘: 1, ‘b‘: 2, ‘c‘: 3, ‘aa‘: 11, ‘bb‘: 22, ‘cc‘: 33}
11 print(‘\n‘)
12
13 ## 4. 【合并列表】
14 a =  [91, 95, 97, 99]
15 b =  [92, 93, 96, 98]
16 ## 下面的结果(除了append)得出的列表是一样的!!
17 a+=b        # [91, 95, 97, 99, 92, 93, 96, 98]
18 a=a+b       # [91, 95, 97, 99, 92, 93, 96, 98]
19 a.extend(b) # [91, 95, 97, 99, 92, 93, 96, 98]
20 a.append(b) # [91, 95, 97, 99,[92, 93, 96, 98]]
21 # b=[]整体作为一个元素
22 a[0:0]=b      #[92, 93, 96, 98, 91, 95, 97, 99]
23 # 使用切片??

5)【直接遍历-字典dict中的值】

 1 # 5.【直接遍历-字典dict中的值】
 2 # (1) 大字典+小字典
 3 scores = {
 4     ‘第1组‘:{‘小明‘:95,‘小红‘:90,‘小刚‘:100,‘小美‘:85},
 5     ‘第3组‘:{‘小强‘:99,‘小兰‘:89,‘小伟‘:93,‘小芳‘:88}
 6     }
 7 for i,j in scores.items():
 8     print(i) # 键
 9     print(j) # 值
10 for k in scores.values():
11     print(k)
12
13 # (2) 大字典+小字典+列表
14 unit_rooms = {3:{301:[1,80],302:[1,80],303:[2,90],304:[2,90]},
15              4:{401:[1,80],402:[1,80],403:[2,90],404:[2,90]},
16              5:{501:[1,80],502:[1,80],503:[2,90],504:[2,90]}
17             }
18 for sub_dict in unit_rooms.values():
19     for i,j in sub_dict.items():
20         print(‘户室:%d\n朝向:%d\n面积:%d‘%(i,j[0],j[1]))

6)【取出list里面全部int / str

 1 # 6.【取出list里面全部int】
 2 a=[1,2,2,3,4]
 3 sum0=‘‘
 4 k=0
 5 for k in range(len(a)-1):
 6     sum0=sum0+str(a[k])+‘,‘  #  1,2,2,3,4,(最后多余的逗号)
 7     k=k+1
 8 sum=sum0+str(a[-1])          #  1,2,2,3,4(没有最后多余的逗号)
 9 print(sum)
10
11
12
13 # 6.【取出list里面全部str】
14 list=[‘1‘,‘2‘,‘3‘,‘4‘,‘5‘]
15 x=(‘,‘).join(list)  # 1,2,3,4,5
16 print(x)

7)【字符串分离.split() /合并.join()】

 1 # 7.【字符串分离.split() /合并.join()】
 2 list0=[‘你,我,他‘,‘1,2,3‘ ]
 3 for i in list0:
 4     a=i.split(‘,‘)  # [‘你‘,‘我‘,‘他‘] [‘1‘,‘2‘,‘3‘]
 5     print(a)
 6     b=‘,‘.join(a)   # 你,我,他   1,2,3
 7     print(b)
 8
 9 list1=[‘d‘,‘o‘,‘g‘]
10 print(‘,‘.join(list1)) # d,o,g
11 print(‘-‘.join(list1)) # d-o-g

8)【列表数字str变int】+【自动升序/降序】

1 ##  8. 【列表数字str变int】+【自动升序/降序】
2 x0=[‘2‘, ‘4‘, ‘1‘, ‘3‘]
3 x=list(map(int,x0))   # x=[2,4,1,3]
4 # 升序[1, 2, 3, 4]
5 x2=x.sort(reverse=False)
6 x2=sorted(x,reverse=False)
7 # 降序[4, 3, 2, 1]
8 x3=x.sort(reverse=True)
9 x3=sorted(x,reverse=True)

A. 合并+排序

 1 ## 作1:合并+排序
 2 c =  [‘91‘, ‘95‘, ‘97‘, ‘99‘]
 3 d =  [‘92‘, ‘93‘, ‘96‘, ‘98‘]
 4 ###c+=d    # [‘91‘, ‘95‘, ‘97‘, ‘99‘, ‘92‘, ‘93‘, ‘96‘, ‘98‘]
 5 c.extend(d) # [‘91‘, ‘95‘, ‘97‘, ‘99‘, ‘92‘, ‘93‘, ‘96‘, ‘98‘]
 6 print(c)
 7 x1=list(map(int,c))  # [91,95,97,99,92,93,96,98]
 8 x1.sort()   # 升序[91,92,93,95,96,97,98,99]
 9 print(x1)
10 e =  [‘91‘, ‘95‘, ‘97‘, ‘99‘]
11 f =  [‘92‘, ‘93‘, ‘96‘, ‘98‘]
12 e+=f
13 print(e)
14 x2=list(map(int,e))
15 x3=sorted(x2,reverse=True)  # 降序[99, 98, 97, 96, 95, 93, 92, 91]
16 x4=sorted(x2,reverse=False)  # 升序[91, 92, 93, 95, 96, 97, 98, 99]
17 print(x3)
18 print(x4)
19 print(‘\n‘)

B. 【算平均分】

 1 ## 作业2:算平均分
 2 scores = {‘语文‘:89, ‘数学‘:95, ‘英语‘:80}
 3 sum=0
 4 def get_average(scores):
 5     for subject, score in scores.items():
 6         global sum
 7         print(subject)  # 科目
 8         print(score)    # 分数
 9         sum=sum+score
10         print(sum)
11         global ave_score
12         ave_score = sum/len(scores)
13 get_average(scores)
14 print(‘\n总分是%d‘%sum)
15 print(‘平均分是%d‘%ave_score)
16 ## 同时取键:值
17 for i,j in scores.items():
18     print(i+‘:‘+j)

C. 【哈利波特学院-成绩】

 1 ## 作业3:哈利波特学院-成绩
 2 # (1)读取人名、各分数
 3 a=open(‘sample/scores.txt‘,‘r‘)
 4 b=a.readlines()
 5 a.close()
 6 print(b)
 7
 8 # (2)计算总分,存入Scores11
 9 dict = {} # {‘罗恩‘: 102, ‘哈利‘: 392}
10 mark=[]  # [100,99,98,,,]
11 for i in b:
12     print(i)
13     j=i.split(‘ ‘) # 最后一行是‘\n‘
14     print(j)
15     name=j[0]
16     sum=0
17 ## A. 计算总分
18     for k in j[1:-1]:  # 不包括最后一行‘\n‘
19         sum=sum+int(k)
20         mark.append(k)
21     dict[name]=sum
22 print(dict)
23 ## B. 提取字典中的键:值 写入scores11
24 for n,m in dict.items():
25     x=n+str(m)+‘\n‘
26     print(‘最终成绩——‘+x)
27 # 下面是打开文件的另一种方式,为避免忘记close(),很常见
28     with open(‘sample/scores11.txt‘,‘a‘) as a:
29         c=a.writelines(x)  # <class string>
30 ## mark=[]是为了复习一遍 【列表自动排序】
31 print(mark)
32 mark=list(map(int,mark))### 字符串str变整数int
33 print(mark)
34 mark.sort(reverse=True) ### 降序
35 print(mark)
36 print(‘\n‘)
37 ## (3)scores11排序
38 dict1={}
39 num=[]
40 with open(‘sample/scores11.txt‘,‘r‘) as a:
41     d=a.readlines()
42 for i in d:
43     n=i[0:-4]      # 1字符读取姓名
44     m=int(i[-4:])  # 1字符读取分数,不加int会出现‘\n‘
45     num.append(m)
46     dict1[m]=n
47 print(num)  #[102, 392, 570, 275]
48 print(dict1)
49 num.sort(reverse=True) # 降序
50 print(num)  #[570, 392, 275, 102]
51 with open(‘sample/scores12.txt‘,‘a‘) as a:
52     for i in num:
53         x=dict1[i]+str(i)+‘\n‘
54         e=a.writelines(x)
55         print(x)

原文地址:https://www.cnblogs.com/lj-attitudes0303/p/10354611.html

时间: 2024-10-31 02:13:08

基本用法:3《数据串:字典{}、列表[]》的相关文章

python之小应用:读取csv文件并处理01数据串

目的:读取csv文件内容,把0和1的数据串取出来,统计出现1的连续次数和各次数出现的频率次数 先读取csv文件内容: import csv def csv_read(file): list = [] csv_reader = csv.reader(file) for id, data, *args in csv_reader: #跳过表头 if id == " ": continue #print(id, data) list.append(data) return list 再写处理

Linux tar命令高级用法——备份数据

Linux tar命令高级用法——备份数据 2015-12-31 Linux学习 Linux上有功能强大的tar命令,tar最初是为了制作磁带备份(tape archive)而设计的,它的作用是把文件和目录备份到磁带中,然后从磁带中提取或恢复文件.现在我们可以使用tar来备份数据到任何存储介质上.它是文件级备份,不必考虑底层文件系统类别,并且支持增量备份. 1.部分常用选项 ●-z, --gzip:使用gzip工具(解)压缩,后缀一般为.gz ●-c, --create:tar打包,后缀一般为.

【Python】对字典列表进行去重追加

[TOC] 目标 现有字典列表 # A = [ {dict1}, {dict2} ] B = [ {dict3}, {dict2} ] C = [ {dict3}, {dict4} ] M = [A,B,C] X = [] 将M去重后的字典放入列表X中,得到X = [{dict1}, {dict2},{dict3}, {dict4}] 难点 字典列表 大家可能一开始会想到使用set()函数转化为集合,自动去重.但是集合是使用hash来计算并去重的,但是字典类型无法使用Hash计算.虽然可以使用类

python之itemgetter函数:对字典列表进行多键排序

itemgetter函数:对字典列表进行多键排序 1 from operator import itemgetter 2 3 list_people = [ 4 {'name': 'Mike', 'age': 22, 'score': 90}, 5 {'name': 'Alice', 'age': 22, 'score': 90}, 6 {'name': 'Lee', 'age': 26, 'score': 92}, 7 {'name': 'Ben', 'age': 26, 'score': 8

[WP8.1UI控件编程]Windows Phone大数据量网络图片列表的异步加载和内存优化

11.2.4 大数据量网络图片列表的异步加载和内存优化 虚拟化技术可以让Windows Phone上的大数据量列表不必担心会一次性加载所有的数据,保证了UI的流程性.对于虚拟化的技术,我们不仅仅只是依赖其来给列表加载数据,还可以利用虚拟化的特性去做更多的事情.虚拟化技术有一个很重要的特性就是,它可以准确地判断出哪些列表项处于手机屏幕中,可以动态地去更新这些数据.基于这样的特性,我们可以给列表的功能做更多的优化. 那么下面我们基于一个例子来讲解利用虚拟化技术去做列表的性能优化.有这么一个需求,需要

OSS.Common获取枚举字典列表标准库支持

介绍了OSS.Common的标准库支持扩展,也列举了可能遇到问题的解决方案.由于时间有限,同时.net standard暂时还没有提供对DescriptionAttribute的支持,所以其中的转化枚举到字典列表的扩展当时按照第一种处理方式先行屏蔽,这次按照第三种方式完善一下. 既然.net standard 下没有提供对DescriptAttribute的支持,首先我先自定义一个Attribute来补充: [AttributeUsage(AttributeTargets.All, AllowM

个人小TIP:录入一些信息时,可以采用字典+列表的方式

以前录入 信息,有的时候只有一条,还比较方便,就 直接写个字典就搞定了,如下:  dic = {'username': 'alex','password': commons.md5('123')        json.dump(dic, open(userinfo.USER_DIR_FOLDER, 'w')) 但是要录入很多信息呢??就需要用到列表,如下: dic = [{'username': 'alex','password': commons.md5('123')},       {'u

JSON 学习 :JSON数据串、对象、数组之间的转化

1 package utils; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 import com.google.gson.Gson; 6 import com.google.gson.JsonObject; 7 import com.google.gson.reflect.TypeToken; 8 import java.lang.reflect.Type; 9 import bean.User; 10 import n

jquery中json数据转换为字典

首先在前台页面中的json数据为 var recipe = {}; recipe["name"] = $("#name").val(); recipe["age"] = $("#age").val(); recipe["sex"] = $("#sex").val(); recipe["medicine"] = "{'name': 'a', 'value':