5.现有字典 d= {'a':24,'g':52,'i':12,'k':33}请按value值进行排序
sorted(d.items(),key=lambda x:x[1]) # x[0]代表用key进行排序;x[1]代表用value进行排序。
输出:
[('i', 12), ('a', 24), ('k', 33), ('g', 52)]
加上dict(),输出为字典类型
6.字典推导式
对于字典,它和列表、元组一样,也可以使用字典推导式来快速的生成一个字典,它的表现形式和列表推导式类似,只不过将列表推导式中的中括号[]改为大括号{}:
{键表达式:值表达式 for 循环}
d = {key:value for (key,value) in iterable}
7.反转字符串
print("aStr"[::-1])
8.将字符串 "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
# 字典推导式法
d = {k:int(v) for t in str1.split("|") for k, v in (t.split(":"), )}
print(d)
9.请按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)
sort_by_age(alist)
10.下面代码的输出结果将是什么?
list = ['a','b','c','d','e']
print(list[10:])
代码将输出[],
不会产生
IndexError
错误,就像所期望的那样,尝试用超出成员的个数的
index
来获取某个列表的成员。例如,尝试获取
list[10]
和之后的成员,会导致
IndexError
。然而,尝试获取列表的切
片,开始的
index
超过了成员个数不会产生
IndexError
,而是仅仅返回一个空列表。这成为特别让人恶
心的疑难杂症,因为运行的时候没有错误产生,导致
Bug
很难被追踪到。
11.写一个列表生成式,产生一个公差为11的等差数列
print([x*11 for x in range(10)])
12.给定两个列表,怎么找出他们相同的元素和不同的元素?
list1 = [1,2,3]
list2 = [3,4,5]
set1 = set(list1)
set2 = set(list2)
print(set1 & set2) # 交集
print(set1 ^ set2) # 并集
输出:
{3}
{1, 2, 4, 5}
13.请写出一段python代码实现删除list里面的重复元素
l1 = ['b','c','d','c','a','a']
l2 = list(set(l1))
print(l2)
上面不能保持原列表的顺序位置,要与原列表顺序一致,可以用list
类的
sort
方法
:
l1 = ['b','c','d','c','a','a']
l2 = list(set(l1))
l2.sort(key=l1.index)
print(l2)
也可以这样写:
l1 = ['b','c','d','c','a','a']
l2 = sorted(set(l1),key=l1.index)
print(l2)
也可以用遍历:
l1 = ['b','c','d','c','a','a']
l2 = []
for i in l1:
if not i in l2:
l2.append(i)
print(l2)
14.给定两个list A,B ,请用找出A,B中相同与不同的元素
A,B 中相同元素: print(set(A)&set(B))
A,B 中不同元素: print(set(A)^set(B))