技术交流QQ群:1027579432,欢迎你的加入!

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date    : 2019-03-05 16:29:12
# @Author  : cdl (1217096231@qq.com)
# @Link    : https://github.com/cdlwhm1217096231/python3_spider
# @Version : $Id$

Q1: 现有字典如下,如何将字典按照key值进行排序

d = {"a": 24, "z": 56, "c": 30}
d_sorted = sorted(d.items(), key=lambda x: x[1])  # x是一个tuple,x[1]即返回的是字典的key
print(d_sorted)

Q2: 字典推导式

dicts = {v: k for k, v in d.items()}   # 将key与value进行交换
print(dicts)

Q3: 反转字符串

str1 = "abc"
print(str1[::-1])

Q4: 将字符串 "k:1|k1:2|k2:3|k3:4",处理成{k:1, k1:2,...}

def str_to_dict(ss):
    dict1 = {}
    for lis in ss.split('|'):
        k, v = lis.split(':')
        dict1[k] = int(v)
    return dict1

Q5: 将lis中的元素的age由大到小排序

def sorted_lis(list1):
    listed = sorted(lis, key=lambda x: x['age'], reverse=True)
    return listed

Q6: 下面的代码将输出什么

alist = ['a', 'b', 'c', 'd', 'e']
print(alist[10:])   # 代码将输出[],不会产生索引错误

Q7: 写一个列表生成式,产生一个公差是11的等差列表

lis = [i * 11 for i in range(10)]
print(lis)

Q8:给出两个列表,怎么找出它们中相同的元素和不同的元素

lis1 = [1, 2, 3]
lis2 = [2, 3, 4]
set1 = set(lis1)
set2 = set(lis2)
print("交集:", set1 & set2)
print("差集:", set1 ^ set2)

Q9:删除list中的重复操作

l1 = ['a', 'a', 'b', 'c', 'c', 'v', 'x']
print("方法1:", list(set(l1)))

l1 = ['a', 'a', 'b', 'c', 'c', 'v', 'x']
l2 = sorted(set(l1), key=l1.index)
print("方法2:", l2)

l1 = ['a', 'a', 'b', 'c', 'c', 'v', 'x']
l2 = list(set(l1))
l2.sort(key=l1.index)
print("方法3:", l2)

l1 = ['a', 'a', 'b', 'c', 'c', 'v', 'x']


def list_unique(lis):
    l2 = []
    for i in l1:
        if i not in l2:
            l2.append(i)
    return l2


l2 = list_unique(l1)
print("方法4:", l2)
if __name__ == '__main__':
    # Q4
    str2 = "k:1|k1:2|k2:3|k3:4"
    result = str_to_dict(str2)
    print(result)
    # 字典生成式
    str1 = "k:1|k1:2|k2:3|k3:4"
    d = {k: int(v) for t in str1.split("|")
         for k, v in (t.split(':'), )}  # (t.split(':'), )构成一个元组
    print(d)
    # Q5
    lis = [{"name": 'a', 'age': 20}, {
        "name": 'b', "age": 30}, {"name": 'c', "age": 25}]
    listed = sorted_lis(lis)
    print(listed)