<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>

          25條很棒的Python一行代碼,建議收藏!

          共 4156字,需瀏覽 9分鐘

           ·

          2021-02-15 21:47



          自從我用Python編寫第一行代碼以來,就被它的簡(jiǎn)單性、出色的可讀性和特別流行的一行代碼所吸引。


          在下面,我將給大家介紹并解釋一些Python一行程序。


          可能有些你還不知道,但對(duì)你未來的Python項(xiàng)目很有用。



          ▍1、交換兩個(gè)變量


          #?a?=?4?b?=?5
          a,b?=?b,a
          #?print(a,b)?>>?5,4


          讓我們通過交換兩個(gè)變量作為一個(gè)簡(jiǎn)單的開始。


          此方法是最簡(jiǎn)單、最直觀的方法之一,無需使用臨時(shí)變量或應(yīng)用算術(shù)操作即可編寫。



          ▍2、多個(gè)變量賦值


          a,b,c?=?4,5.5,'Hello'
          #print(a,b,c)?>>?4,5.5,hello


          你可以使用逗號(hào)和變量一次性將多個(gè)值分配給變量。使用此技術(shù),你可以一次分配多個(gè)數(shù)據(jù)類型。?


          你可以使用列表將值分配給變量。下面是將列表中的多個(gè)值分配給變量的示例。


          a,b,*c?=?[1,2,3,4,5]
          print(a,b,c)
          >?1?2?[3,4,5]



          ▍3、列表中偶數(shù)的和


          有很多方法可以做到這一點(diǎn),但最好和最簡(jiǎn)單的方法是使用列表索引和sum函數(shù)。


          a?=?[1,2,3,4,5,6]
          s?=?sum([num?for?num?in?a?if?num%2?==?0])
          print(s)
          >>?12



          ▍4、從列表中刪除多個(gè)元素


          del是Python中用于從列表中刪除值的關(guān)鍵字。


          ####?Deleting?all?even
          a?=?[1,2,3,4,5]
          del?a[1::2]
          print(a)

          >[1,?3,?5]

          a



          ▍5、讀取文件


          lst?=?[line.strip()?for?line?in?open('data.txt')]
          print(lst)


          這里我們使用列表來處理。


          首先,我們打開一個(gè)文本文件,并使用for循環(huán),逐行讀取。?最后,使用strip刪除所有不必要的空間。?


          通過使列表功能,使得代碼簡(jiǎn)單,更短


          list(open('data.txt'))

          ##Using?with?will?also?close?the?file?after?use
          with?open("data.txt")?as?f:
          ????lst=[line.strip()?for?line?in?f]
          print(lst)



          ▍6、將數(shù)據(jù)寫入文件


          with?open("data.txt",'a',newline='\n')?as?f:?
          ????f.write("Python?is?awsome")


          上面的代碼首先創(chuàng)建一個(gè)文件data.txt(如果沒有的話),然后它會(huì)在文件中寫Python is awesome。



          ▍7、創(chuàng)建列表


          lst?=?[i?for?i?in?range(0,10)]
          print(lst)
          >?[0,?1,?2,?3,?4,?5,?6,?7,?8,?9]

          or

          lst?=?list(range(0,10))
          print(lst)


          我們也可以使用相同的方法創(chuàng)建一個(gè)字符串列表。


          lst?=?[("Hello?"+i)?for?i?in?['Karl','Abhay','Zen']]
          print(lst)
          >?['Hello?Karl',?'Hello?Abhay',?'Hello?Zen']



          ▍8、映射列表或類型轉(zhuǎn)換整個(gè)列表

          有時(shí)在我們的項(xiàng)目中,我們需要更改列表中所有元素的數(shù)據(jù)類型。你想到的第一個(gè)方法可能是使用循環(huán),然后訪問列表中的所有元素,然后一個(gè)接一個(gè)地更改元素的數(shù)據(jù)類型。


          這個(gè)方法是老派的,在Python中我們有一個(gè)映射函數(shù),可以為我們做這些工作。


          list(map(int,['1','2','3']))
          >?[1,?2,?3]

          list(map(float,[1,2,3]))
          >?[1.0,?2.0,?3.0]

          [float(i)?for?i?in?[1,2,3]]
          >?[1.0,?2.0,?3.0]



          ▍9、創(chuàng)建集合


          我們用于創(chuàng)建列表的方法也可以用于創(chuàng)建集合。讓我們使用包含范圍內(nèi)所有偶數(shù)的平方根方法來創(chuàng)建一個(gè)集合。


          ####?Square?of?all?even?numbers?in?an?range
          {x**2?for?x?in?range(10)?if?x%2==0}

          >?{0,?4,?16,?36,?64}



          ▍10、Fizz Buzz


          在這個(gè)測(cè)試中,我們需要編寫一個(gè)程序來打印從1到20的數(shù)字。但如果是3的倍數(shù),打印Fizz,如果是5的倍數(shù),打印Buzz,如果同時(shí)是3和5的倍數(shù),打印FizzBuzz,否則打印數(shù)字。


          看起來我們必須使用循環(huán)和多個(gè)if-else語句。如果你嘗試用其他語言來做,你可能需要寫10行代碼,但是使用Python,我們可以只用一行代碼就實(shí)現(xiàn)FizzBuzz。


          ['FizzBuzz'?if?i%3==0?and?i%5==0
          ????else?'Fizz'?if?i%3==0?
          ????else?'Buzz'?if?i%5==0?
          ????else?i??for?i?in?range(1,20)]


          在上面的代碼中,我們使用列表理解來運(yùn)行一個(gè)從1到20的循環(huán),然后在循環(huán)的每次迭代中,我們檢查數(shù)字是否能被3或5整除。如果是,那么我們用Fizz或Buzz替換數(shù)值,或者用FizzBuzz數(shù)值。



          ▍11、回文


          回文是一個(gè)數(shù)字或字符串,當(dāng)它被反轉(zhuǎn)時(shí)看起來是一樣的。


          text?=?'level'
          ispalindrome?=?text?==?text[::-1]
          ispalindrome

          >?True



          ▍12、用空格分隔的整數(shù)到一個(gè)列表


          lis?=?list(map(int,?input().split()))
          print(lis)

          >?1?2?3?4?5?6?7?8
          [1,?2,?3,?4,?5,?6,?7,?8]



          ▍13、Lambda函數(shù)


          lambda函數(shù)是一個(gè)小型匿名函數(shù)。lambda函數(shù)可以接受任意數(shù)量的參數(shù),但只能有一個(gè)表達(dá)式。


          #?Function?that?returns?square?of?any?number
          sqr?=?lambda?x:?x?*?x
          sqr(10)

          >?100



          ▍14、檢查列表中數(shù)字的存在


          num?=?5
          if?num?in?[1,2,3,4,5]:
          ?????print('present')

          >?present??



          ▍15、打印圖案


          在Python中,我們只需要一行代碼就可以繪制出令人驚嘆的圖案。


          n?=?5
          print('\n'.join('??'?*?i?for?i?in?range(1,?n?+?1)))

          >
          ??
          ????
          ??????
          ????????
          ????????????



          ▍16、查找階乘


          階乘是一個(gè)整數(shù)和它下面所有整數(shù)的乘積。


          import?math
          n?=?6
          math.factorial(n)

          >?720??



          ▍17、斐波納契數(shù)列


          一組數(shù)字,其中每個(gè)數(shù)字(斐波那契數(shù))是前面兩個(gè)數(shù)字的和。最簡(jiǎn)單的斐波那契數(shù)列1,1,2,3,5,8,13等等。可以使用列表推導(dǎo)式和for循環(huán)在一個(gè)范圍內(nèi)創(chuàng)建斐波那契數(shù)列。


          fibo?=?[0,1]
          [fibo.append(fibo[-2]+fibo[-1])?for?i?in?range(5)]
          fibo

          >?[0,?1,?1,?2,?3,?5,?8]??



          ▍18、質(zhì)數(shù)


          質(zhì)數(shù)是一個(gè)只能被自身和1整除的數(shù)。例如:2、3、5、7等。為了在一個(gè)范圍內(nèi)生成質(zhì)數(shù),我們可以使用帶有filter和lambda的list函數(shù)來生成質(zhì)數(shù)。


          list(filter(lambda?x:all(x?%?y?!=?0?for?y?in?range(2,?x)),?range(2,?13)))

          >?[2,?3,?5,?7,?11]??



          ▍19、查找最大數(shù)值


          findmax?=?lambda?x,y:?x?if?x?>?y?else?y?
          findmax(5,14)

          >?14

          or?
          max(5,14)??


          在上面的代碼中,我們使用lambda函數(shù)檢查比較條件,并根據(jù)返回的最大值。


          或者使用max()內(nèi)置函數(shù)。



          ▍20、線性代數(shù)


          有時(shí)候我們需要將列表中的元素縮放2到5倍。下面的代碼解釋了如何做到這一點(diǎn)。


          def?scale(lst,?x):
          ????return?[i*x?for?i?in?lst]?


          scale([2,3,4],?2)

          >?[4,6,8]??



          ▍21、矩陣轉(zhuǎn)置


          您需要將所有行轉(zhuǎn)換為列,反之亦然。在Python中,可以使用zip函數(shù)在一行代碼中置換一個(gè)矩陣。


          a=[[1,2,3],
          ???[4,5,6],
          ???[7,8,9]]?
          transpose?=?[list(i)?for?i?in?zip(*a)]?
          transpose

          >?[[1,?4,?7],?[2,?5,?8],?[3,?6,?9]]



          ▍22、計(jì)數(shù)


          當(dāng)我們需要知道某個(gè)值在文本中出現(xiàn)的次數(shù)時(shí),這是一個(gè)重要而有用的用例。在Python中,有re庫可以來幫你完成這項(xiàng)工作。


          import?re

          len(re.findall('python','python?is?a?programming?language.?python?is?python.'))

          >?3



          ▍23、用其他文本替換文本


          "python?is?a?programming?language.python?is?python".replace("python",'Java')

          >?Java?is?a?programming?language.?Java?is?Java



          ▍24、模擬拋硬幣


          這可能不是那么重要,但當(dāng)你需要從一組給定的選擇中生成一些隨機(jī)選擇時(shí),它會(huì)非常有用。


          import?random

          random.choice(['Head',"Tail"])

          >?Hea


          ▍25、生成組


          groups?=?[(a,?b)?for?a?in?['a',?'b']?for?b?in?[1,?2,?3]]?
          groups

          >?[('a',?1),?('a',?2),?('a',?3),?('b',?1),?('b',?2),?('b',?3)]



          —??—


          一鍵三連「分享」、「點(diǎn)贊」和「在看」

          技術(shù)干貨與你天天見~


          瀏覽 41
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <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>
                  五月激情综合 | 亚洲无码精品久久久 | 这里只有99精品 | 91热爆TS人妖系列 | 久久99嫩草99久久精品 |