-
有列表 a = ["7net.cn","www.7net","www.septnet7","7net","www.6net",7nte.org]现需要从中将包含字符7net的元素给删掉,请以最少代码量实现。(3分)
a = ["7net.cn","www.7net","www.septnet7","7net","www.6net","7nte.org"] print(list(filter(lambda x:"7net"not in x,a)))
l = ['班级24','班级15','班级3','班级5','班级25'],按照数字的顺序从大到小排序,不改变原列表,请以最少代码量实现。(3分)
l = ['班级24','班级15','班级3','班级5','班级25'] print(list(sorted(l,key=lambda x:int(x[2:]),reverse=True)))
现在有两元祖tu1 = (('a'),('b')),tu2 = (('cc'),('dd')),请使用python中的匿名函数和内置函数生成列表[{'a':'cc'},{'b':'dd'}] (3分)
tu1 = (('a'),('b')) tu2 = (('cc'),('dd')) print(list(map(lambda x:{x[0]:x[1]},zip(tu1,tu2))))
写一个生成器,里面的元素是20以内所有奇数的平方减2,并且调用生成器(2分)
g = (i**2-2 for i in range(1,20,2)) for i in g: print(i)
lst = [{“a”:6,”b”:22},{“a”:12,”b”:28},{“a”:18,”b”:21}]请写出以键b的值对lst进行从小到大排序的表达式(3分)
lst = [{"a":6,"b":22},{"a":12,"b":28},{"a":18,"b":21}] print(list(sorted(lst,key=lambda x:x["b"])))
用filter函数过滤出单价大于100的股票。(3分)
portfolio = [
{'name': 'IBM', 'shares': 100, 'price': 91.1},
{'name': 'AAPL', 'shares': 50, 'price': 543.22},
{'name': 'FB', 'shares': 200, 'price': 21.09},
{'name': 'HPQ', 'shares': 35, 'price': 31.75},
{'name': 'YHOO', 'shares': 45, 'price': 116.35},
{'name': 'ACME', 'shares': 75, 'price': 115.65}]
portfolio = [ {'name': 'IBM', 'shares': 100, 'price': 91.1}, {'name': 'AAPL', 'shares': 50, 'price': 543.22}, {'name': 'FB', 'shares': 200, 'price': 21.09}, {'name': 'HPQ', 'shares': 35, 'price': 31.75}, {'name': 'YHOO', 'shares': 45, 'price': 116.35}, {'name': 'ACME', 'shares': 75, 'price': 115.65}] print(list(filter(lambda x:x["price"] > 100,portfolio)))
求出l1列表中成绩最高的学生的姓名。(3分)
l1 = [('王大锤',59),('李业',67),('宝哥哥',99),('铁蛋',47)]
l1 = [('王大锤',59),('李业',67),('宝哥哥',99),('铁蛋',47)] print(max(l1,key=lambda x:x[-1]))
有一个lst = ["This","is","a","Boy","!"]所有元素都是字符串,使用sorted对它进行不分到小写无关的排序(3分)
lst = ["This","is","a","Boy","!"] print(sorted(map(lambda x:x.lower(),lst)))
将lst = [[1,2,3],[4,5,6],[7,8,9]] 转换成 [1,2,3,4,5,6,7,8,9] (5分)
lst = [[1,2,3],[4,5,6],[7,8,9]] new_lst = [] for i in lst: new_lst += i print(new_lst) # 第二种方法 print([i for j in lst for i in j ])
写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组
例如:[(‘红心’,2),(‘草花’,2), …(‘黑桃’,‘A’)] (5分)
lst = ["红心","草心","黑桃","梅花"] new_lst = [i for i in range(2,11)] + ["J","Q","K","A"] print([(j,i) for j in new_lst for i in lst])
将列表内的元素,根据位数合并成字典(7分)
lst = [1,2,3,4,12,23,34,45,111,222,333,1234,2345,34567,456789] # 输出如下字典: { 1:[1,2,3,4], 2:[12,23,34,45], 3:[111,222,333], 4:[1234,2345], 5:[34567], 6:[456789] }
lst = [1,2,3,4,12,23,34,45,111,222,333,1234,2345,34567,456789] dic = {} for i in lst: if len(str(i)) in dic: dic[len(str(i))].append(i) else: dic[len(str(i))] = [i] print(dic)
把aaaabbbcc这种形状式中特定的字符串压缩成a4b3c2这种字符串的格式(10分)
s = 'aaaabbbcc' from collections import Counter print("".join(map(lambda x:x+str(dict(Counter(s))[x]),dict(Counter(s)))))
有两个字符串列表a和b,每个字符串是由逗号分隔的一些字符:(10分)
a = [ "a:1", "b:2:3", "c:5:7" ] b = [ "a:2:3", "b:4:5", "d:6:8" ] # 生成如下列表 c = [ "a:1:2:3", "b:2:3:4:5", "c:5:7", "d:6:8" ]
答案:
a = [ "a:1", "b:2:3", "c:5:7" ] b = [ "a:2:3", "b:4:5", "d:6:8" ] dic = {i[0]:i for i in a} for j in b: if j[0] in dic: dic[j[0]] += j[1:] else: dic.setdefault(j[0],j) print(list(dic.values()))
转载于:https://www.cnblogs.com/saoqiang/p/11392225.html