练习一:使用循环和列表推导找出单词长度大于某个数字的单词
■words = ["apple", "banana", "orange", "peach","kiwi"]
words = ["apple", "banana", "orange", "peach","kiwi"]
i = int(input("请输入数字:"))
# find = []
find = [x for x in words if len(x) > i]
print find
输出结果如下:
练习二:寻找两个列表中的相同元素
■l1=[1,2,5]
■l2=[6,2,7]
l1=[1,2,5]
l2=[6,2,7]
print(list(set(l1)&set(l2)))
用了比较取巧的方法,结果如下:
也可以用以下的方法:
l1=[1,2,5]
l2=[6,2,7]
same = [(i,j) for i in l1 for j in l2]
print [k for k in same if k[0] == k[1]]
结果如下:
练习三:去除一个列表中相领且重复的元素。
■l1=[1,2,3,4,4,4,4,4,4,5,6,6,8,8,12,12,12,12,13]
l1=[1,2,3,4,4,4,4,4,4,5,6,6,8,8,12,12,12,12,13]
print list(set(l1))
结果如下:
练习四:
■给定两个列表,一个存放用户名,一个存放密码。请将用户名和密码按顺序进行对应为一个元素。
■Username=[‘jack’,’bob’,’john’]
■Password=[‘123’,’859’,’hello’]
Username=['jack','bob','john']
Password=['123','895','hello']
a = zip(Username,Password)
print dict(a)
输出结果:
练习五:使用列表推导式,打印出颜色与尺寸的(组合)
▪colors=['black','white']
▪sizes=['S','M','L']
colors=['white','black']
sizes=['S','M','L']
print [(i,j) for i in colors for j in sizes]
输出结果:
练习六:词频统计
■l1=['sklearn','AI','julyedu.com','Caffe','AI','sklearn‘]
■对l1包含的单词,利用dict统计词频
■对每个参数进行判断,若在则对应的value+1
■否则根据该字符创建一个key并且value设置为1
■最后输出该词典
l1=['sklearn','AI','julyedu.com','Caffe','AI','sklearn']
base = {}.fromkeys(l1,0)
for i in l1:
base[i] = base[i] + 1
print base
输出结果:
这个练习用到了dict 的一个方法fromkeys(,v)可以新建一个字典
练习七: 实现行列互转
■arr= [[1, 2, 3], [4, 5, 6], [7,8, 9], [10, 11, 12]]
arr= [[1, 2, 3], [4, 5, 6], [7,8, 9], [10, 11, 12]]
# new_arr = []
# for i in range(3):
# for j in range(4):
# new_arr.append(arr[j][i])
# print new_arr
print np.array(arr).T.tolist()
输出结果:
有一个疑问就是用循环的方式append的结果,没有将列表分开,而是和在一个列表了。
练习八:实现求指定长度的Fibonacci 数列
▪Fib数组初始为[0,1]
■分别要求使用循环和数组实现
x = input("请输入要计算多少位斐波那契额数列:")
fib = [0,1]
i = 0
while i < int(x):
sum = fib[i] + fib[i+1]
i += 1
fib.append(sum)
print(fib)
输出结果:
作业:[ ]对应检查
■输入含有[]的字符串,输出对中括号出现规则的检测结果
■ [] OK ][ NOT OK
■ [][] OK ][][ NOT OK
■ [[][]] OK []][[] NOT OK
■# [[][[]]] OK ][]][[][ NOT OK
x = raw_input("请输入n个[]")
dictbase = {'[':0,']':0}
if x.count('[') != x.count(']'):
print '不相等'
else:
for i in x:
if i == '[':
dictbase['['] += 1
elif i == ']' and dictbase[']'] < dictbase['[']:
dictbase[']'] += 1
else:
pass
if dictbase['['] == dictbase[']'] & dictbase['['] != 0:
print 'it is ok!'
else:
print 'it is not ok!'
输出结果: