Python代码练习(二):容器

Python代码练习(二):容器

七月在线课程的练习题

  • 使用循环和列表推导找出单词长度大于某个数字的单词
    words = [“apple”, “banana”, “orange”, “peach”,“kiwi”]
#法一:
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]
#法一:
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


  • 用户名密码对应(字典)
    给定两个列表,一个存放用户名,一个存放密码。请将用户名和密码按顺序进行对应为一个元素。
    Username=[‘jack’,’bob’,’john’]
    Password=[‘123’,’859’,’hello’]
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.com’,‘Caffe’,‘AI’,'sklearn‘]
    对l1包含的单词,利用dict统计词频
    对每个参数进行判断,若在则对应的value+1
    否则根据该字符创建一个key并且value设置为1
    最后输出该词典
l1=['sklearn','AI','julyedu.com','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]]
#法一:
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]))


  • 实现求指定长度的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]
    a=np.zeros(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 ]:')
dictbase={'[':0,']':0}
if s.count('[')!=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
发布了192 篇原创文章 · 获赞 204 · 访问量 42万+

猜你喜欢

转载自blog.csdn.net/qq_37486501/article/details/104382589