Python作业_Python基础升级 第二课 kerry


练习一
使用循环和列表推导找出单词长度大于某个数字的单词
i=[words for words in words if len(words) > 5]
print (i)


练习二
寻找两个列表中的相同元素
l1=[1,2,5]
l2=[6,2,7]
i=[i for i in l1 if i in l2]
print (i)


练习三
去除一个列表中相领且重复的元素。

不改变原list次序

l1=[1,2,3,4,4,4,4,4,4,5,6,6,8,8,13,12,12,12,12]
l2 = list(set(l1)) 
l2.sort(key=l1.index) 
print (l2)

or 
l1=[1,2,3,4,4,4,4,4,4,5,6,6,8,8,13,12,12,12,12]
l2 = [] 
[l2.append(i) for i in l1 if not i in l2] 
print (l2)


改正为:
l1=[1,2,3,4,4,4,4,4,4,5,2,2,6,6,8,8,13,12,12,12,12]
res=[]
for i in l1:
    if not res or res[-1]!=i:
        res.append(i)
print (res)

Username=['jack','bob','john']
Password=['123','859','hello']
print(list(zip(Username,Password)))


练习5:使用列表推导式,打印出颜色与尺寸的(组合)

colors=['black','white']
sizes=['S','M','L']

a=[(x,y) for x in colors for y in sizes]
print(a)

练习6:词频统计
l1=['sklearn','AI','julyedu.com','Caffe','AI','sklearn']
from collections import Counter
print(Counter(l1))
or
l1=['sklearn','AI','julyedu.com','Caffe','AI','sklearn']
d = dict.fromkeys(l1, 0)
for x in l1:
    d[x]+=1
print(d)


练习7: 实现行列互转
import numpy 
arr=[[1, 2, 3], [4, 5, 6], [7,8, 9], [10, 11, 12]]
print(numpy.transpose(arr))

or 

arr=[[1, 2, 3], [4, 5, 6], [7,8, 9], [10, 11, 12]]
print(list(list(i) for i in zip(*arr)))

s = input('请输入中括号:')
left=[]
right=[]
flag=True
for i in range(len(s)):
    if '['==s[i]:
        left.append(i)
        print(left)
    if ']'==s[i]:
        right.append(i)
        print(right)
if len(left)!=len(right):
    flag=False
else:
    for j in range(len(left)):
        if left.pop(0)>right.pop():
            flag=False
if flag==True:
    print('通过')
else:
    print('请仔细检查')


or
flag_L='['
flag_R=']'

def check(string):
    stack = []
    for char in string:
        if char == flag_L:
            stack.append(char)
        elif char == flag_R:
            if stack and stack[-1] == flag_L:
                stack.pop()
            else:
                return 'NOT OK'
    return 'OK'



a=['[]','][']
b=['[][]','][][']
c=['[[][]]','[]][[]']
d=['#[[][[]]]','][]][[][']
print (a[0],check(a[0]),a[1],check(a[1]))
print (b[0],check(b[0]),b[1],check(b[1]))
print (c[0],check(c[0]),c[1],check(c[1]))
print (d[0],check(d[0]),d[1],check(d[1]))
已邀请:

ClownFish

赞同来自:


看到。作业很认真。代码格式也整理得很易读,棒~

练习三
有问题,第一种解法用set是不能保证次序的。
第二种解法,保证了次序,但每个元素只能有出现一次,如果遇到1,1,1,3,1,1,3,3,5,5这种最后只会保留1,3,5,但要求是保留1,3,1,3,5

第七题,居然用上了numpy,看来有经验~~~哈哈

要回复问题请先登录注册

返回顶部