作业问题疑难解决收集
目录
基础作业1
text = """id,name,age,phone,job
1,alex,22,13651054608,IT
2,wusir,23,13304320533,Tearcher
3,老男孩,18,1333235322,IT"""
# 将上述数据处理为如下格式的结果:
# info = [{'id':'1','name':'alex','age':'22','phone':'13651054608','job':'IT'},.... ..]
# 提示:text的内容是根据 \n 分割(\n表示回车换行)。
# 定义一个空列表
data_list = []
# 赋值两个变量名,用于接收键及value,l1表示键,l2表示value
l1,l2 = text.split('\n',maxsplit=1)
# 对l1_key原来的字符串变成一个列表
l1_key = l1.split(',')
# 定义一个空字典
key_dict = {}
# 循环遍历key列表,给key_dict字典设置key:value,key 为列表的值,value统一设置成None
for i in l1_key:
key_dict[i] = None
# 把text里面的内容设置为列表,内容为['1,alex,22,13651054608,IT', '2,wusir,23,13304320533,Tearcher', '3,老男孩,18,1333235322,IT']
l2_value = l2.split('\n')
# 定义个空列表,用于接收text里面的value
l3 = []
# 循环遍历text里面的value,并把里面的内容追加到刚才上面定义的l3空列表,且由一大串字符串变成单个单个字符串
# 大字符串: ['1,alex,22,13651054608,IT', '2,wusir,23,13304320533,Tearcher', '3,老男孩,18,1333235322,IT']
# 单个单个字符串 [['1', 'alex', '22', '13651054608', 'IT'], ['2', 'wusir', '23', '13304320533', 'Tearcher'], ['3', '老男孩', '18', '1333235322', 'IT']]
for v_data in l2_value:
l3.append(v_data.split(','))
# 循环遍历列表里面的列表。 [['1', 'alex', '22', '13651054608', 'IT'], ['2', 'wusir', '23', '13304320533', 'Tearcher'], ['3', '老男孩', '18', '1333235322', 'IT']]
for v in l3:
key_dict["id"] = v[0]
key_dict["name"] = v[1]
key_dict["age"] = v[2]
key_dict["phone"] = v[3]
key_dict["job"] = v[4]
data_list.append(key_dict)
# 如果不加此参数,会默认按最后一组获取得到的值覆盖字典里面所有的值
key_dict = {}
print(data_list) # [{'id': '1', 'name': 'alex', 'age': '22', 'phone': '13651054608', 'job': 'IT'}, {'id': '2', 'name': 'wusir', 'age': '23', 'phone': '13304320533', 'job': 'Tear
另一种解法:
data_list = text.split('\n') # ['id,name,age,phone,job', '1,alex,22,13651054608,IT ', '2,wusir,23,13304320533,Tearcher', '3,老男孩,18,1333235322,IT']
header_list = data_list[0].split(',') # ['id', 'name', 'age', 'phone', 'job']
info = []
for index in range(1,len(data_list)): # range(1,4) == 1,2,3
item = {}
row = data_list[index] # row:'1,alex,22,13651054608,IT '
row_item_list = row.split(',') # ['1', 'alex', '22', '13651054608', 'IT ']
for i in range(len(row_item_list)): # range(5) == 0,1,2,3,4
item[header_list[i]] = row_item_list[i] # 字典设置key:value,有的话更新,没有的就是新建,这里是新建=={id:1}
info.append(item) #上面for循环下来就是一个列表,例如如{'id': '1', 'name': 'alex', 'age': '22', 'phone': '13651054608', 'job': 'IT '}
print(info) # [{'id': '1', 'name': 'alex', 'age': '22', 'phone': '13651054608', 'job': 'IT '}, {'id': '2', 'name': 'wusir', 'age': '23', 'phone': '13304320533', 'job': 'Tearcher'}, {'id': '3', 'name': '老男孩', 'age': '18', 'phone': '1333235322', 'job': 'IT'}]
第三种解法:
title, *content = text.split('\n')
title_list = title.split(',')
res_list = []
for data in content:
data_list = data.split(',')
# res = dict(zip(title_list,data_list))
res_list.append(dict(zip(title_list,data_list)))
print(res_list)
car_list = ['鲁A32444', '沪B12333', '京B8989M', '京C49678', '黑C46555', '晋B25041', '沪C34567']
"""
个人实现方法
tmp = []
# 1.提取这个列表所有的字符串的首个字母,并放到新的列表里
for i in car_list:
tmp.append(i[:1])
# 2.把这个列表放到一个集合里
s1 =set(tmp)
# print(s1)
# 3.对这个集合遍历,拿里面的数值去和新列表做统计,把统计结果写到新字典里
d1 = {}
for i in s1:
d1[i] = tmp.count(i)
print(d1)
方法二
info = {}
for item in car_list:
# 获取列表里面数值的首个字母
city = item[0]
# 如果这个首个字母在新建的info字典里
if city in info:
# 字典的key:value
info[city] = info[city] + 1
else:
# 不在这个字典,默认就往字典里设置key:城市字母 value是1
info[city] = 1
print(info)
info = {}
for item in car_list:
city = item[0]
# 获取字典里面的key值,如果key有值,直接得到key的值,如果没有,直接赋值为0
# 获取info字典里面key城市的数值,如果有直接返回这个字典城市的数值,如果没有,直接返回为0
num = info.get(city,0)
# 字典的key:value
info[city] = num + 1
print(info)
"""
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗