<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python案例篇:七個Python高階案例

          共 2920字,需瀏覽 6分鐘

           ·

          2022-06-02 06:52


          一、排序及自定義函數(shù)之案例一:選擇排序

          案例一:選擇排序 使用選擇排序的思想實(shí)現(xiàn)列表數(shù)據(jù)的升序排序

          參考代碼:

          lt=[45,12,56,-32,-3,44,75,-22,100]
          length=len(lt)
          # print('排序前:'+str(lt))
          for?i?in?range(0,length-1):
          ????#內(nèi)層循環(huán)呢控制每一輪執(zhí)行的次數(shù),j可以認(rèn)為是比較空間或箭頭
          ????for?j?in?range(i+1,length):
          ????????#判斷兩空間中的內(nèi)容,如果選中空間比比較空間中的數(shù)據(jù)大,則交換數(shù)據(jù)
          ????????if?lt[i]>lt[j]:
          ????????????#temp=lt[i]
          ????????????#lt[i]=lt[j]
          ????????????#lt[j]=temp
          ????????????lt[i],lt[j]=lt[j],lt[i]
          # print('排序后:'+str(lt))

          二、匿名函數(shù)的定義和使用

          需求:字符串?dāng)?shù)據(jù)’This is \n a \latiao’ --> 得到’This is a test’ 步驟一:使用字符串的split()函數(shù)–>作用:可以默認(rèn)去除字符串中的空格、\n、\t等內(nèi)容 然后將字符串?dāng)?shù)據(jù)以列表的形式返回

          步驟二:使用字符串的join()函數(shù)–>以空格作為連接的格式,將列表中的元素連接成為一個字符串?dāng)?shù)據(jù)返回

          str1='this?is?\na?\latiao'
          lt=str1.split()
          print(lt)
          ?
          str2='?'.join(lt)
          print(str1,type(str1))
          print(str2,type(str2))
          ?
          print(lambda?x:'?'.join(x.split())(str1))

          三、高階函數(shù)練習(xí)題

          1.lt?=?['sdfasdfa',?'ewqrewrewqr',?'dsafa12312fdsafd',?'safsadf']

          –> 得到長度列表

          2.tp?=?('TOM',?'Lilei',?'JAck',?‘HanmeiMeI’)

          –> 得到列表(所有元素的首字母大寫)

          3.
          lt1?=?[1,2,3,4]
          lt2?=?[5,6,7,8]
          計(jì)算得到:lt1[0]lt2[0]?+ lt1[1]lt2[1]?+ ...
          ?15?+?26?+

          最終得到累加以后的值 參考代碼:

          from?functools?import?reduce
          lt?=?['sdfasdfa',?'ewqrewrewqr',?'dsafa12312fdsafd',?'safsadf']
          print(list(map(len,lt)))
          ?
          tp?=?('TOM',?'Lilei',?'JAck','HanmeiMeI')
          ?
          #自定義函數(shù):
          def?func(name):
          ????return?name.capitalize()
          ?
          print(list(map(func,tp)))
          print(list(map(lambda?x:x.capitalize(),tp)))
          print(list(map(str.capitalize,tp)))
          ?
          lt1=[1,2,3,4,5]
          lt2=[5,6,7,8]
          ?
          #使用map的思想得到組合數(shù)據(jù)對象(map類型),對象中的元素內(nèi)容為:15 26 37 48
          lt1_map=map(lambda?x:x*10,lt1)?#map中的內(nèi)容為:10,20,30,40
          ret_map=map(lambda?x,y:x+y,lt1_map,lt2)?#map中的內(nèi)容為:15,26,37,48
          print(list(lt1_map))
          print(list(ret_map))
          ?
          #使用reduce的思想將map對象中的數(shù)據(jù)進(jìn)行累加
          num=reduce(lambda?x,y:?x?+?y,ret_map)
          print('和值為:?%s'?%num)

          四、高階函數(shù)練習(xí)題

          高階函數(shù)以及匿名函數(shù)之間的配合使用

          from?functools?import?reduce
          #模塊一:lambda和filter的結(jié)合使用
          #lt?=?[1,2,3,4,5,6,7,8,9]?-->?[3,6,9]]
          lt?=?[1,2,3,4,5,6,7,8,9]
          print(list(filter(lambda?x:x%3==0,lt)))
          ?
          #模塊二:lambda和map的結(jié)合使用
          #容器/序列對象:range對象
          mo=map(lambda?x:x**2,range(5))
          print(list(mo))
          ?
          #模塊三:
          '''
          在模塊二的基礎(chǔ)上擴(kuò)展功能:range(10)
          過濾以后保留的數(shù)據(jù)范圍為:(5,50)之間
          '
          ''
          mo=map(lambda?x:x**2,range(10))
          fo=filter(lambda?x:x>5?and?x<50,mo)
          print(list(fo))
          ?
          #模塊四:lambda和reduce配合使用
          lt=[1,2,3,4,5]
          my_sum=reduce(lambda?x,y:x+y,lt)
          print(my_sum)

          五、求兩個列表元素的和,返回新列表

          參考代碼:

          lt1=[1,2,3,4]
          lt2=[5,6]
          print(list(map(lambda?x,y:x+y,lt1,lt2)))

          六、求字符串中每個單詞的長度

          參考代碼:

          content?=?'Welcome?To?latiao'
          word_list=content.split()
          mo=map(len,word_list)
          print(list(mo),type(mo))


          七、接收函數(shù)作為參數(shù),或者將函數(shù)作為返回值

          接收函數(shù)作為參數(shù),或者將函數(shù)作為返回值

          #?創(chuàng)建一個列表
          l?=?[1,2,3,4,5,6,7,8,9,10]

          #?定義一個函數(shù),用來檢查一個任意的數(shù)字是否是偶數(shù)。
          def?fn2(i)?:
          ????if?i?%?2?==?0?:
          ????????return?True

          ????return?False????

          #?這個函數(shù)用來檢查指定的數(shù)字是否大于5
          def?fn3(i):
          ????if?i?>?5?:
          ????????return?True????
          ????return?False
          #?這個函數(shù)可以將3的倍數(shù)取出
          def?fn4(i):
          ????if?i?%?3?==?0?:
          ????????return?True
          ????return?False

          def?fn(func?,?lst)?:#?定義高階函數(shù)fn

          ????#?創(chuàng)建一個新列表
          ????new_list?=?[]

          ????#?對列表進(jìn)行篩選
          ????for?n?in?lst?:
          ??????new_list.append(n)
          ????#?返回新列表
          ????return?new_list
          #此時就可以隨意調(diào)用不同的函數(shù)來獲得不同的結(jié)果了,
          #只需要改變高階函數(shù)fn的兩個參數(shù)即可。?????
          print(fn(fn4?,?l))#此時調(diào)用的是fn4,列表是l,即意味著取出l列表中所有能被3整除的數(shù)。




          瀏覽 95
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  AV天堂成人网 | 日韩AV在线动漫国产 | 最新国产毛片 | 日本成人黄色视频 | 日韩一级黄色毛片 |