python入门第二课练习

练习一:使用循环和列表推导找出单词长度大于某个数字的单词

■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!'

输出结果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值