python学习Day11--试题

大题解析

  1 '''
  2 # 在python3版本中,s1='老男孩',如何将s1转化成utf-8的bytes类型?/
  3 # 转化成功后,得到s2,如何将s2转化成gbk的bytes类型。
  4 s1='老男孩'
  5 s2=s1.encode('utf-8')
  6 print(s2)
  7 s3=s2.decode('utf-8')
  8 print(s3)
  9 s4=s3.encode('gbk')
 10 print(s4)
 11 
 12 # l=[1,1,2,2,3,4,5,5,6,6,7,8]去重,并还原成列表格式
 13 l=[1,1,2,2,3,4,5,5,6,6,7,8]
 14 l1=set(l)
 15 l=list(l1)
 16 print(l)
 17 
 18 # '1,2,3'如何变成['1','2','3']?如何变成[1,2,3]?
 19 s1='1,2,3'
 20 s1=s1.split(',')
 21 print(s1)
 22 for i in range(len(s1)):
 23     s1[i]=int(s1[i])
 24 print(s1)
 25 
 26 # 1、将字符串"k: 1|k1:2|k2:3|k3 :4"处理成字典{'k':1,'k1:2'....}
 27 s1="k: 1|k1:2|k2:3|k3 :4"
 28 s1=s1.split('|')
 29 dic={}
 30 for i in range(len(s1)):
 31     [k,v]=s1[i].split(':')
 32     dic[k.strip()]=int(v.strip())
 33 print(dic)
 34 
 35 # 2、实现一个整数加法计算器:
 36 # 如:content=input('请输入内容:') #如用户输入:5+7+8...(最少输入两个数相加),\
 37 # 将最后的结果添加到此字典中(替换None):
 38 # dic={'最终计算结果':None}
 39 dic={'最终计算结果':None}
 40 content=input('请输入内容:').strip()
 41 lst=content.split("+")
 42 sum=0
 43 for el in lst:
 44     sum=sum+int(el.strip())
 45 print(sum)
 46 dic['最终计算结果']=sum
 47 print(dic)
 48 
 49 # 3、写函数,函数可接受多个字符串类型的参数。此函数的功能是将所有的参数以'_'的形式\
 50 # 隔开,然后追加到一个文件中。
 51 def main(file_name,*args):
 52     s="_".join(args)
 53     f=open(file_name,mode='a',encoding='utf-8')
 54     f.write(s)
 55     f.flush()
 56     f.close()
 57 
 58 # 4、写函数完成以下功能:
 59 #   给函数传入一个列表(此列表里面的元素必须全是str类型),将列表中的每个元素按照顺序依次加上他们的索引,形成新的
 60 # 元素,并添加到一个新列表,将列表返回
 61 def func(lst):
 62     new_lst=[]
 63     for i in range(len(lst)):
 64         new_lst.append(lst[i]+str(i))
 65     return(new_lst)
 66 ll=['alex','太白']
 67 print(func(ll))
 68 
 69 # 5、有文件t1.txt里面的内容为:(6分)
 70 #   1,alex,22,13651054608,IT
 71 #     2,wusir,23,13304320533,Tearcher
 72 #     3,taibai,18,1333235322,IT
 73 #   利用文件操作,将其构造成如下数据类型:
 74 #   [{'id':'1','name':'alex','age':'22','phone':'13651054608','             'job':'IT'},......]
 75 result=[]
 76 with open("t1.txt",encoding="utf-8") as f:
 77     # 读取每一行数据
 78     for line in f:
 79         dic={}
 80         lst=line.split(",")
 81         dic['id']=lst[0].strip()
 82         dic['name']=lst[1].strip()
 83         dic['age']=lst[2].strip()
 84         dic['phone']=lst[3].strip()
 85         dic['job']=lst[4].strip()
 86         result.append(dic)
 87     print(result)
 88 
 89 # 6、有如下值li=[11,22,33,44,55,77,88,99,90],将所有大于66的值保存至字典的第一个key中,
 90 # 将小于66的值保存至第二个key中。
 91 li=[11,22,33,44,55,77,88,99,90]
 92 result={}
 93 for row in li:
 94     if row > 66:
 95         result.setdefault('k1',[]).append(row)  #注意setdefault的用途
 96     else:
 97         result.setdefault('k2',[]).append(row)
 98 print(result)
 99 '''
100 # 7、写函数,完成以下功能:
101 #  例如有:
102 #  user_list=[
103 #       {"name":"alex","hobby":"抽烟"},
104 #       {"name":"alex","hobby":"喝酒"},
105 #       {"name":"alex","hobby":"烫头"},
106 #       {"name":"wusir","hobby":"喊麦"},
107 #       {"name":"wusir","hobby":"街舞"},
108 #        ]
109 #   编写函数处理user_list,并返回如下结果:
110 # [{"name":"alex","hobby_list":["抽烟","喝酒","烫头",]},
111 # {"name":"wusir","hobby_list":["喊麦","街舞"]},]
112 def main(user_list):
113     new_list=[]
114     old_dic={}
115     for el in user_list:
116         k,v=el.values()
117         old_dic.setdefault(k,[]).append(v)
118     for k,v in old_dic.items():
119         new_dic={}
120         new_dic['name']=k
121         new_dic['hobby_list']=v
122         new_list.append(new_dic)
123     print(new_list)
124 
125 user_list=[
126     {"name":"alex","hobby":"抽烟"},
127     {"name":"alex","hobby":"喝酒"},
128     {"name":"alex","hobby":"烫头"},
129     {"name":"wusir","hobby":"喊麦"},
130     {"name":"wusir","hobby":"街舞"},
131     ]
132 main(user_list)

 

你可能感兴趣的:(python学习Day11--试题)