python 表 字典 数据补充

  1. 请说出下面a,b,c三个变量的数据类型。
​```python
a = ('太白金星')
b = (1,)
c = ({'name': 'barry'})
​```
# 结果:
# str
# tuple
# dict

2.按照需求为列表排序:

l1 = [1, 3, 6, 7, 9, 8, 5, 4, 2]
# 从大到小排序
# 从小到大排序
# 反转l1列表

结果:

l1 = [1, 3, 6, 7, 9, 8, 5, 4, 2]
# # 从大到小排序
l1.sort()
print(l1)
# # 从小到大排序
l1.sort(reverse=True)
print(l1)
# # 反转l1列表
l1.reverse()
print(l1)

3.利用python代码构建一个这样的列表(升级题):

[['_','_','_'],['_','_','_'],['_','_','_']]
lis1 = ['_', '_', '_']
lis = [lis1,lis1,lis1]
print(lis)

4.看代码写结果:

l1 = [1,2,]
l1 += [3,4]
print(l1)
l1 = [1,2,3,4]

5.看代码写结果:

​```python 
dic = dict.fromkeys('abc',[])
dic['a'].append(666)
dic['b'].append(111)
print(dic)
​```
# {'a': [666, 111], 'b': [666, 111], 'c': [666, 111]}
  1. l1 = [11, 22, 33, 44, 55],请把索引为奇数对应的元素删除(不能一个一个删除,此l1只是举个例子,里面的元素不定)

    # 方法一,切片删除
    l1 = [11, 22, 33, 44, 55]
    del l1[1::2]
    print(l1)
    
    # 方法二,倒序删除
    l1 = [11, 22, 33, 44, 55]
    for i in range(len(l1)-1,-1,-1):
        if i % 2 == 1:
            l1.pop(i)
    print(l1)
    
  2. dic = {'k1':'太白','k2':'barry','k3': '白白', 'age': 18} 请将字典中所有键带k元素的键值对删除.

    dic = {'k1': '太白', 'k2': 'barry', 'k3': '白白', 'age': 18}
    for i in list(dic.keys()):
        if 'k' in i:
            dic.pop(i)
    print(dic)
    
  3. bytes数据类型是python的基础数据类型,bytes类型存在的意义是什么?

    bytes类型也称作字节文本,他的主要用途就是网络的数据传输,与数据存储

  4. 列举bytes类型与str类型的三个不同点?

  5. 完成下列需求:

s1 = '太白金星'
# 将s1转换成utf-8的bytes类型。
# 将s1转化成gbk的bytes类型。
b = b'\xe5\xa4\xaa\xe7\x99\xbd\xe6\x9c\x80\xe5\xb8\x85'
# b为utf-8的bytes类型,请转换成gbk的bytes类型。

s1 = '太白金星'
# # 将s1转换成utf-8的bytes类型。
b1 = s1.encode('utf-8')
print(b1,type(b1))
# # 将s1转化成gbk的bytes类型
b1 = s1.encode('gbk')
print(b1,type(b1))

b = b'\xe5\xa4\xaa\xe7\x99\xbd\xe6\x9c\x80\xe5\xb8\x85'
# b为utf - 8的bytes类型,请转换成gbk的bytes类型。
# b1 = b.decode('utf-8')
# print(b1,type(b1))
b1 = b.decode('utf-8').encode('gbk')
print(b1,type(b1))
  1. 用户输入一个数字,判断一个数是否是水仙花数。

    水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数. 那这个数就是一个水仙花数,

    # 例如: 153 =1**3 + 5**3 + 3**3  
    
while 1:
    num = input('请输入一个三位数:(Q/q退出)').strip()
    print('-'*30)
    if num.upper() == 'Q':break
    elif num.isnumeric() and len(num) == 3:
        if int(num) == int(num[0])**3 + int(num[1])**3 + int(num[2])**3:
            print('这是一个水仙花数。~~~~~')
        else:
            print('这不是一个水仙花数,请重新输入。')
    else:
        print('输入有误,请重新输入。')
    print('*'*30)
    print('\n')
  1. 把列表中所有姓周的⼈的信息删掉(此题有坑, 请慎重):

    lst = ['周⽼⼆', '周星星', '麻花藤', '周扒⽪']

    结果: lst = ['麻花藤']

    lst = ['周⽼⼆', '周星星', '麻花藤', '周扒⽪']
    lst1 = []
    for i in range(0,len(lst)):
        if '周' in lst[i]:
            lst1.append(lst[i])
    lst = list(set(lst) - set(lst1))
    print(f'lst = {lst}')
    # 利用集合差集来为列表去重
    
  2. 车牌区域划分, 现给出以下车牌. 根据车牌的信息, 分析出各省的车牌持有量. (选做题)

    cars = ['鲁A32444','鲁B12333','京B8989M','⿊C49678','⿊C46555','沪 B25041'.....]

    locals = {'沪':'上海', '⿊':'⿊⻰江', '鲁':'⼭东', '鄂':'湖北', '湘':'湖南'.....}

    结果: {'⿊⻰江':2, '⼭东': 1, '北京': 1}

cars = ['鲁A32444', '鲁B12333', '京B8989M', '⿊C49678', '⿊C46555', '沪 B25041']

locals = {'沪': '上海', '⿊': '⿊⻰江', '鲁': '⼭东', '鄂': '湖北', '湘': '湖南','京':'北京'}

sor = dict()
# list_key = list(locals.keys())
for i in list(locals.keys()):
    con = 0
    for l in range(0,len(cars)):
        if i in cars[l]:
            con += 1
    # if con > 0:
    sor.setdefault(locals.get(i),con)
print(sor)

猜你喜欢

转载自www.cnblogs.com/luxi526/p/12602438.html