Python代码练习(⼆):容器Python代码练习(⼆):容器
七⽉在线课程的练习题
使⽤循环和列表推导出单词长度⼤于某个数字的单词
words = [“apple”, “banana”, “orange”, “peach”,“kiwi”]
列表推导式:[表达式 for 变量 in 列表 if 条件]
#法⼀:
words =["apple", "banana", "orange", "peach","kiwi"]
l=int(input())
# [x for x in words if len(x)>=l]
for x in words:
if len(x)>=l:
print(x)
#法⼆:
words =["apple", "banana", "orange", "peach","kiwi"]
l=int(input())
[x for x in words if len(x)>=l]
#法三:
words=['apple','banana','orange','peach','kiwi']
def findlen(n):
bigthan=[]
for i in words:
if int(len(i))>n:
bigthan.append(i)
return bigthan
findlen(5)
使⽤列表推导式寻两个列表中的相同元素
寻两个列表中的相同元素
l1=[1,2,5]
l2=[6,2,7]
列表推导式:[表达式(i,j) for 变量 in 列表 for 变量 in 列表]
#法⼀:
l1=[1,2,5]
l2=[6,2,7]
n=0
for i in l1:
for j in l2:
if i==j:
n+=1;
print(n)
#法⼆:
l1=[1,2,5];l2=[6,2,7]
tup=[(i,j)for i in l1 for j in l2]
[k for k in tup 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]
#法⼀:
uni1=[l1[0]]
for j in range(1,len(l1)):
if l1[j]!=l1[j-1]:
uni1.append(l1[j])
uni1
#法⼆:
set(l1)
⽤户名密码对应(字典)
给定两个列表,⼀个存放⽤户名,⼀个存放密码。请将⽤户名和密码按顺序进⾏对应为⼀个元素。
Username=[‘jack’,’bob’,’john’]
Password=[‘123’,’859’,’hello’]
Eg:l1=[‘julyedu’,‘AI教育’] ;l2=[’’,‘平台’],list(zip(l1,l2))得到⼀⼀对应的关系,则得到:[(‘julyedu’,‘’), (‘AI教育’, ‘平台’)]。
Username=['jack','bob','john']
Password=['123','859','hello']
pair=zip(Username,Password);dict(pair)
使⽤列表推导式,打印出颜⾊与尺⼨的(组合)
colors=[‘black’,‘white’]
sizes=[‘S’,‘M’,‘L’]
colors=['black','white']
sizes=['S','M','L']
[(i,j)for i in colors for j in sizes]
词频统计
l1=[‘sklearn’,‘AI’,‘julyedu’,‘Caffe’,‘AI’,'sklearn‘]
对l1包含的单词,利⽤dict统计词频
对每个参数进⾏判断,若在则对应的value+1
否则根据该字符创建⼀个key并且value设置为1
最后输出该词典
base={}.fromkeys(l1,0) 创建⼀个新字典,以序列中元素做字典的键,value 为字典所有键对应的初始值
l1=['sklearn','AI','julyedu','Caffe','AI','sklearn']
base={}.fromkeys(l1,0)
for item in l1:
base[item]+=1
base
实现⾏列互转
arr= [[1, 2, 3], [4, 5, 6], [7,8, 9], [10, 11, 12]]
Eg:l1=[‘julyedu’,‘AI教育’] ;l2=[’’,‘平台’],list(zip(l1,l2))得到⼀⼀对应的关系,则得到:[(‘julyedu’,‘’), (‘AI教育’, ‘平台’)]。
#法⼀:
import numpy as np
arr=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]
np.array(arr).T.tolist()
#法⼆:
arr=[[1, 2, 3], [4, 5, 6], [7,8, 9], [10, 11, 12]]
list(zip(arr[0],arr[1],arr[2],arr[3]))
#法三:
arr=[[1, 2, 3], [4, 5, 6], [7,8, 9], [10, 11, 12]]
list(zip(*arr))
实现求指定长度的Fibonacci 数列
Fib数组初始为[0,1]
分别要求使⽤循环和列表实现
#法⼀:
def fibonacci(n):
Fib=[0,1]
a=Fib[0]
b=Fib[1]
i=2
while i<n:
tmp=a
a=b
b=a+tmp
Fib.append(b)
i+=1
return Fib
#test
fibonacci(10)
#法⼆:
import numpy as np
def fibonacci2(n):
Fib=[0,1]
s(n)
a[0]=Fib[0];a[1]=Fib[1]
for i in range(2,n):
a[i]=a[i-1]+a[i-2]
Fib.append(int(a[i]))
return Fib
#test
fibonacci2(10)
输⼊含有[]的字符串,输出对中括号出现规则的检测结果[ ]对应检查
输⼊含有[]的字符串,输出对中括号出现规则的检测结果[] OK ][ NOT OK
[][] OK ][][ NOT OK
[[][]] OK []][[] NOT OK
[[][[]]] OK ][]][[][ NOT OK
s=input('type several [ and ]:')python新手代码练习
dictbase={'[':0,']':0}
unt('[')!=s.count(']'):
print("'[' and ']'have different number") else:
for i in s:
if i=='[':
dictbase['[']+=1
elif(i==']')&(dictbase[']']<dictbase['[']):
dictbase[']']+=1
else:
pass
if(dictbase['[']==dictbase[']'])&(dictbase['[']!=0):    print("OK!")
elif dictbase['[']!=0:
print("NOT OK!")
else:
pass

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。