python基础入门升级版 第二课练习及作业


-1、 使用列表推导式找出单词长度大于n的单词
l1=['julyedu.com','AI','tensorflow','','sklearn','dadsadada']
[x for x in l1 if len(x) > 4]

-2、使用列表推导式寻找两个列表中的相同元素
l1=['julyedu.com','AI','tensorflow','sklearn','asdadasd']
l2=['julyedu','AI','tensorf','','sklearn','asdad']
[[i,j] for i in l1 for j in l2 if i==j ]

-3、去除一个列表中相领且重复的元素。
l1=[1,2,2,3,4,4,5,6,6,6,7,7,8,8]
a=set(l1)
sorted(a)

4、用户名密码对应
- 给定两个列表,一个存放用户名,一个存放密码。请将用户名和密码按顺序进行对应为一个元素。
l1=['aaa','bbb','ccc']
l2=['111','222','333']
list(zip(l1,l2))

5、使用列表推导式计算笛卡尔积(组合)
l1=[1,3,5]
l2=[2,4,6,8]
[(i,j) for i in l1 for j in l2]

6、词频统计
- 利用dict统计词频
- 对每个参数进行判断,若在则对应的value+1
- 否则根据该字符创建一个key并且value设置为1
- 最后输出该词典
l1=['julyedu.com','AI','tensorflow','','sklearn','AI']
d1={}
j = 1
for i in l1:
if i in d1:
d1[i]=j+1
else:
d1[i]=j
d1


-7、 实现行列互转
l1=[1,11,111]
l2=[2,22,222]
l3=[3,33,333]
l4=[4,44,444]
arr1=[l1,l2,l3,l4]
arr2=[]
arr3=[]
for j in range(len(arr1[0])):

for i in range(len(arr1)):
arr2.append(arr1[i][j])
arr3.append(arr2)
arr2=[]

arr3
后来看了别人的做法,发现zip真是太操蛋 了,亏我想了好久才凑出来,抽搐。。

-8、fib数列[数组实现]
l1=[0,1]
i = 0
j = 0
while(i<10):
j=l1[-1]+l1[-2]
l1.append(j)
i=i+1
print(l1)

9、输入含有[]的字符串,输出对中括号出现规则的检测结果
l2=[]
for item in s:
l2.append(item)
i=j=0
while(len(l2)!=0):
if l2[0]=='[':
i=i+1
else:
j=j+1
l2.pop(0)
if i<j :
print('NOT OK')
break
elif len(l2)==0:
print('OK')
已邀请:

ClownFish

赞同来自:


第3题不对。我说过,set是无序且唯一。这里的要求只去相邻重复,不是去掉所有重复的。

行列互转那题,哈哈。。。这下你对zip印象深刻了吧~

下次作业,代码用上引用 ,看起来眼睛好受一些。

要回复问题请先登录注册

返回顶部