作业问题疑难解决收集

基础作业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)
"""

posted @   悠悠-winter  阅读(36)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示