python3 练习题 day02

'''
写代码,有如下字典,按照要求实现每一个功能dic = {'k1':'v1', 'k2':'v2', 'k3':'v3'}
1.请循环遍历出所有的 key
'''
# dic = {'k1':'v1', 'k2':'v2', 'k3':'v3'}
# for k in dic.keys():
# print(k)

'''
2.请循环遍历出所有的 value
'''
# dic = {'k1':'v1', 'k2':'v2', 'k3':'v3'}
# for v in dic.values():
# print(v)

'''
3.请循环遍历出所有的 key 和 value
'''
# dic = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
# for k, v in dic.items():
# print(k, v)

'''
4.请在字典中添加一个键值对, 'k4': 'v4',输出添加后的字典
'''
# dic = {'k1':'v1', 'k2':'v2', 'k3':'v3'}
# # dic.setdefault('k4', 'v4')
# dic['k4'] = 'v4'
# print(dic)

'''
5.请删除字典中键值对'k1':'v1',并输出删除后的字典
'''
# dic = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
# # del dic['k1']
# dic.pop('k1')
# print(dic)

'''
6.请删除字典中的键'k5'对应的键值对,如果字典中不存在键'k5',则不报错,并且让其返回None.
'''
# dic = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
# if dic.get("k5") != None:
# del dic['k5']
# else:
# print(None)

'''
7.请获取字典中'k2'对应的值.
'''
# dic = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
# print(dic['k2'])

'''
8.请获取字典中'k6'对应的值,如果键'k6'不存在,则不报错,并且让其返回None.
'''
# dic = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
# if dic.get("k6") != None:
# print(dic['k6'])
# else:
# print(None)

'''
9.现有 dic2 = {'k1': 'v1', 'a': 'b'}通过一行操作使 dic2 = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3', 'a': 'b'}
'''
# dic = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
# dic2 = {'k1': 'v111', 'a': 'b'}
# dic2.update(dic)
# print(dic2)

'''
10.组合嵌套题.写代码,有如下列表,按照要求实现每一个功能
lis = [['k', ['qwe', 20, {'k1':['tt', 3, '1']}, 89], 'ab']]
1).将列表lis 中的'tt'变成大写(用两种方式).
2).将列表中的数字3编程字符串'100'(用两种方式).
3).将列表中的字符串'1'变成数字101(用两种方式).
'''
# lis = [['k', ['qwe', 20, {'k1': ['tt', 3, '1']}, 89], 'ab']] #1).

# def edit_value(lis_i, old_v, new_v):
# for ind,item in enumerate(lis_i):
# if type(item) is list:
# edit_value(item, old_v, new_v)
# elif type(item) is dict:
# for v in item:
# edit_value(item[v], old_v, new_v)
# else:
# if item == old_v:
# lis_i[ind] = new_v
# break
# edit_value(lis, 3, '100')
# print(lis)

# lis[0][1][2]['k1'][0] = "TT"
# lis[0][1][2]['k1'][0] = lis[0][1][2]['k1'][0].upper()
# print(lis)

# lis[0][1][2]['k1'][1] = "100" #2).
# print(lis)
# lis[0][1][2]['k1'].remove(3)
# lis[0][1][2]['k1'].insert(1, '100')
# print(lis)

# lis[0][1][2]['k1'][2] = 101 #3).
# print(lis)
# lis[0][1][2]['k1'].remove('1')
# lis[0][1][2]['k1'].insert(2, 101)
# print(lis)

'''
11.按照要求实现如下功能:
现有一个列表 li = [1,2,3, 'a', 'b', 4, 'c'],有一个字典(此字典是动态生成的,你并不知道他里面有多少键值对,所以用 dic =
{}模拟此字典);现在需要完成这样的操作:如果该字典没有'k1'这个键,那就创建这个'k1'键和其对应的值(该键对应的值设置为空列
表),并将列表 li 中的索引位为奇数对应的元素,添加到'k1'这个键对应的空列表中.如果该字典中有'k1'这个值,且k1对应的value
是列表类型,那就将列表 li中的索引位为奇数对应的元素,添加到'k1'这个键对应的值中.
'''
# li = [1, 2, 3, 'a', 'b', 4, 'c']
# dic = {}
# dic.setdefault('k1', [])
# for ind, item in enumerate(li):
# if ind % 2 == 1:
# dic['k1'].append(item)
# print(dic)

'''
1.请用代码实现: 利用下划线将列表的每一个元素拼接成字符串, li = ["alex", "eric", "rain"]
'''
# li = ["alex", "eric", "rain"]
# s = "_".join(li)
# print(s)

'''
9.元素分类
有如下值集合[11, 22, 33, 44, 55, 66, 77, 88, 99, 90],将所有大于66的值保存至字典的第一个key中,将小于66的值
保存至第二个key的值中.
即: {'k1':大于66的所有值, 'k2':小于66的所有值}
'''
# lst = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]
# dic = {'k1': [], 'k2': []}
# for item in lst:
# if item > 66:
# dic['k1'].append(item)
# elif item < 66:
# dic['k2'].append(item)
# print(dic)

'''
14. 利用for循环和range输出
.for循环从大到小的输出1-100
'''
# for i in range(1, 101):
# print(i)

'''
.for循环从小到大输出100-1
'''
# for i in range(100, 0, -1):
# print(i)

'''
.while循环从大到小输出100-1
'''
# count = 100
# while count >= 1:
# print(count)
# count -= 1

'''
.while循环从小到大输出1-100
'''
# count = 1
# while count < 101:
# print(count)
# count += 1

'''
.在不改变列表数据结构的情况下找最大值li = [1, 3, 2, 7, 6, 23, 41, 243, 33, 85, 56]
'''
# li = [1, 3, 2, 7, 6, 23, 41, 243, 33, 85, 56]
# Max = li[0]
# for i in li:
# if Max < i:
# Max = i
# print(Max)
# print(li)

'''
.在不改变列表中数据排列结构的前提下,找出以下列表中最接近最大值和最小值的平均值的数
li = [-100, 1, 3, 2, 7, 6, 120, 121, 140, 23, 411, 99, 243, 33, 85, 56]
'''
# li = [-100, 1, 3, 2, 7, 6, 120, 121, 140, 23, 411, 99, 243, 33, 85, 56]
# #最大值和最小值
# Max = li[0]
# Min = li[0]
# for i in li:
# if Max < i:
# Max = i
# if Min > i:
# Min = i
#
# #最大数和最小数的平均值
# Average = (Max + Min)/2
# Min_v = li[0]
# for i in li:
# if abs(Average - i) < abs(Average - Min_v):
# Min_v = i
# print(Min_v)

'''
下面是一种比较好理解的方式
获取每个元素和平均值相减,由差值取绝对值组成的列表
'''
# new_list = []
# for i in li:
# new_list.append(abs(i - Average))
#
# #获取最小值和最小值的索引
# min_v = new_list[0]
# min_ind = 0
# for k, v in enumerate(new_list):
# if min_v > v:
# min_v = v
# min_ind = k
# print(li[min_ind])

'''
.利用for循环和range输出9*9乘法表
'''
# for i in range(1, 10):
# s = ""
# for j in range(1, i+1):
# s += "%d*%d=%d " % (j, i, i*j)
# print(s)

'''
.求100以内的素数和.(编程题)
'''
# Sum = 0
# for i in range(2, 100):
# for j in range(2, i):
# if i % j == 0:
# break
# else:
# # print(i)
# Sum += i
# print(Sum)

猜你喜欢

转载自www.cnblogs.com/lilyxiaoyy/p/10685143.html