Python习题小练一(程序员笔试必备)

1 现有字典 d= {‘a’:24,‘g’:52,‘i’:12,‘k’:33}请按value值进行排序?

d= {'a':24,'g':52,'i':12,'k':33}
d_inv=sorted(d.items(),key=lambda x:x[1])
print(d)
print(d_inv)

结果:

{'a': 24, 'g': 52, 'i': 12, 'k': 33}
[('i', 12), ('a', 24), ('k', 33), ('g', 52)]

2、请反转字符串 “aStr”?

print("aStr"[::-1])

结果:

rtSa

3、将字符串 “k:1 |k1:2|k2:3|k3:4”,处理成字典 {k:1,k1:2,…}

str1 = "k:1 |k1:2 |k2:3 |k3:4"
def str2dict(str1):
    dict1 = {}
    for iterms in str1.split('|'):
        key, value = iterms.split(':')
        dict1[key] = value
    return dict1
print(str2dict(str1))

结果:

{'k': '1 ', 'k1': '2 ', 'k2': '3 ', 'k3': '4'}

4、打乱一个排好序的list对象alist?

import random
alist = [1,2,3,4,5]
random.shuffle(alist)
print(alist)

结果:

[3, 2, 5, 1, 4]

5、输入日期, 判断这一天是这一年的第几天?

import datetime
def dayofyear():
    year = input("请输入年份:")
    month = input("请输入月份:")
    day = input("请输入天:")
    date1 = datetime.date(year=int(year),month=int(month),day=int(day))
    date2 = datetime.date(year=int(year),month=1,day=1)
    return (date1-date2).days+1
print(dayofyear())

结果:

请输入年份:2019
请输入月份:3
请输入天:12
71

6、请按alist中元素的age由小到大排序

alist = [{'name':'a','age':20},{'name':'b','age':30},{'name':'c','age':25}]
def sort_by_age(list1):
    return sorted(alist,key=lambda x:x['age'],reverse=True)
print(sort_by_age(alist))

结果:

[{'name': 'b', 'age': 30}, {'name': 'c', 'age': 25}, {'name': 'a', 'age': 20}]

7、下面代码的输出结果将是什么?

list = ['a','b','c','d','e']
print(list[10:])

结果:

[]

8、写一个列表生成式,产生一个公差为11的等差数列

print([x*11 for x in range(10)])#rangge产生[0-9],然后每个乘以11,公差即为11

结果:

[0, 11, 22, 33, 44, 55, 66, 77, 88, 99]

9、给定两个列表,怎么找出他们相同的元素和不同的元素?

list1 = [1,2,3]
list2 = [3,4,5]
set1 = set(list1)
set2 = set(list2)
print("相同的部分,集合取交集[1,2,3]&[3,4,5]:\n",set1 & set2)
print("不同的部分,集合取差集[1,2,3]^[3,4,5]:\n",set1 ^ set2)

结果:

相同的部分,集合取交集[1,2,3]&[3,4,5]{3}
不同的部分,集合取差集[1,2,3]^[3,4,5]{1, 2, 4, 5}

10、请写出一段python代码实现删除list里面的重复元素?

l1 = ['b','c','d','c','a','a']
l2 = set(l1)

print(l2)

结果:

{'a', 'd', 'c', 'b'}

你可能感兴趣的:(Python)