技术交流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)