常見的python練習題


1、冒泡排序

def bubble_sort(lists):
    len_list=len(lists)
    for i in range(len_list):
        for j in range(len_list-i-1):
            if lists[j]>lists[j+1]:
                lists[j],lists[j+1]=lists[j+1],lists[j]
        print(lists)
    return lists

2、插入排序

def insert_sort(lists):

    for i in range(len(lists)):
        position=i

        while position>0:
            if lists[position]<lists[position-1]:
                lists[position],lists[position-1]=lists[position-1],lists[position]
            position-=1
        print(lists)
    return lists

3、刪除列表中的重復元素

#第一種方式
l=[1,1,6,3,1,5,2]
list(set(l))
#第二種方式
l=[1,1,6,3,1,5,2]
def duplictae(lists):
    L=[]
    for i in lists:
        if i not in L:
            L.append(i)
    return L
print(duplictae(l))

4、下面代碼輸出結果

def f(x,l=[]):
    for i in range(x):
        l.append(i*i)
    print(l)

f(2)

f(3,[3,2,1])

f(3)

結果:[0, 1]
[3, 2, 1, 0, 1, 4]
[0, 1, 0, 1, 4]

5、實現字符串反轉 輸入str="string"輸出'gnirts'

#第一種方式:
def str_reverse(str):
    return str[::-1]

#第二種方式:
def str_reverse(str):
    L=list(str)
    L.reverse()
    new_str=''.join(L)
    return new_str

6、一行代碼實現對列表a中的偶數位置的元素進行加3后求和

sums=sum(map(lambda x:x+3,list[1::2]))

7、List = [-2, 1, 3, -6],如何實現以絕對值大小從小到大將 List 中內容排序

List.sort(key=abs)

8、合並兩個list:

#第一種方式
list1 = [2,3,8]

list2 = [5,6,10]
def list_union(list1,list2):
    for i in list2:
        list1.append(i)
    return(list1)

list_union(list1,list2)
#第二種方式
list1+list2

9、什么是lambda函數?它有什么好處?另外python在函數編程方面提供了些什么函數和語法?

lambda是Python中的匿名函數。它語法簡單,簡化代碼,不會產生命名沖突,污染命名空間。Python提供了map,reduce,filter等函數方法,提供了裝飾器,閉包等語法

10、詳細說說tuple、list、dict的用法,它們的特點

tuple 元祖,固定長度不可變的順序容器,訪問效率高,是和存儲一些常量數據,可以作為字典的鍵使用
list 列表,是長度可變有序的數據存儲容器,。可以通過下標索引取到相應的數據
dict 字典,長度可變的hash字典容器。存儲的方式為鍵值對,可以通過相應的鍵獲取相應的值,key支持多種類型

11、list 對象 alist [{'name':'a','age':20},{'name':'b','age':30},{'name':'c','age':25}], 請按 alist 中元素的age 由大到小排序;

alist.sort(key=lambda x:x['age'], reverse=True)

12、將字符串:"k:1|k1:2|k2:3|k3:4",處理成 python 字典:{'k':'1', 'k1':'2', 'k2':'3','k3':'4' }

str1="k:1|k1:2|k2:3|k3:4"
str_list=str1.split('|')
d={}
for l in str_list:
    key,value=l.split(':')
    d[key]=value
print(d)

13、斐波那契數列

#遞歸
def fib(n):
    if n<=2:
        return 1
    else:
        return fib(n-1)+fib(n-2)

#非遞歸
def fib_circle(n):

    a=1
    b=1
    if n<=2:
        return 1
    else:
        for i in range(2,n):
            c=a+b
            a=b
            b=c
        return c

 

 

 

 
        

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM