python基础练习题

#---------1
a = [1,5,2,1,9,1,5,10]
def dedupe(items):
seen = set()
for item in items:
if item not in seen:
yield item
seen.add(item)
print(list(dedupe(a)))
答案:[1, 5, 2, 9, 10]
#---------2
import re
line = "asdf,fjdk afed;fjek,asdf_foo"
print (re.split(r’[;,\s]s
’,line))
答案:[‘asdf’, ‘fjdk’, 'afed’, ‘fjek’, ‘asdf_foo’]
#---------3
A0 = dict(zip((‘a’,‘c’,‘b’),(1,2,3,4)))
A1 = range(6)
A2 = [i for i in A1 if i in A0]
A3 = [A0[s] for s in A0]
A4 = [i for i in A1 if i in A3]
A5 = [{i:i
i} for i in A1]
A6 = [[i,i*i] for i in A1]
print(A0) #答案:{‘a’: 1, ‘c’: 2, ‘b’: 3}
print(A1) #答案:range(0, 6)
print(A2) #答案:[]
print(A3) #答案:[1, 2, 3]
print(A4) #答案:[1, 2, 3]
print(A5) #答案:[{0: 0}, {1: 1}, {2: 4}, {3: 9}, {4: 16}, {5: 25}]
print(A6) #答案:[[0, 0], [1, 1], [2, 4], [3, 9], [4, 16], [5, 25]]
#----------------4
a = [{‘x’:1,‘y’:2},{‘x’:1,‘y’:3},{‘x’:1,‘y’:2},{‘x’:2,‘y’:4}]
def dedupe(items,key=None):
seen = set()
for item in items:
val = item if key is None else key(item)
if val not in seen:
yield item
seen.add(val)
print(list(dedupe(a,key = lambda d:(d[‘x’],d[‘y’]))))
print(list(dedupe(a,key = lambda d: d[‘x’])))
答案:[{‘x’: 1, ‘y’: 2}, {‘x’: 1, ‘y’: 3}, {‘x’: 2, ‘y’: 4}]
[{‘x’: 1, ‘y’: 2}, {‘x’: 2, ‘y’: 4}]

#---------5
import copy
a = [1,2,3,4,[‘a’,‘b’]]
b = a
c = copy.copy(a)
d = copy.deepcopy(a)
a.append(5)
a[4].append(‘c’)
print(a) #答案:[1, 2, 3, 4, [‘a’, ‘b’, ‘c’], 5]
print(b) #答案:[1, 2, 3, 4, [‘a’, ‘b’, ‘c’], 5]
print© #答案:[1, 2, 3, 4, [‘a’, ‘b’, ‘c’]]
print(d) #答案:[1, 2, 3, 4, [‘a’, ‘b’]]
#--------6
a = ‘a’
print(a > ‘b’ or ‘c’)
答案:c
#--------7
funcs = [lambda x:x+n for n in range(5)]
for f in funcs:
print(f(0))

答案:
4
4
4
4
4

#-------8
a = []
b = {}
for i in range(2):
b[str(i)] = i
a.append(b)
print(a)
答案:[{‘0’: 0, ‘1’: 1}, {‘0’: 0, ‘1’: 1}]
#-------9
def f(x,y=[]):
for i in range(x):
y.append(i*i)
print(y)
f(2)
f(3)
f(3,[3,2,1])

答案:
[0, 1]
[0, 1, 0, 1, 4]
[3, 2, 1, 0, 1, 4]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值