奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌

您現(xiàn)在所在的位置:首頁 >關(guān)于奇酷 > 行業(yè)動態(tài) > 20 個非常有用的 Python 單行代碼

20 個非常有用的 Python 單行代碼

來源:奇酷教育 發(fā)表于:

20 個非常有用的 Python 單行代碼

  有用的 Python 單行代碼片段,只需一行代碼即可解決特定編碼問題!
 
  在本文中,云朵君將分享20 個 Python 一行代碼,你可以在 30 秒或更短的時間內(nèi)輕松學(xué)習(xí)它們。這種單行代碼將節(jié)省你的時間,并使你的代碼看起來更干凈且易于閱讀。
 
  1 一行 For 循環(huán)
 
  for 循環(huán)是一個多行語句,但是在 Python 中,我們可以使用列表推導(dǎo)式方法在一行中編寫 for 循環(huán)。以過濾小于250的值為例,查看下面的代碼示例。
 
  #For循環(huán)在一行
 
  mylist = [200, 300, 400, 500]
 
  #正常方式
 
  result = [] 
 
  for x in mylist: 
 
      if x > 250: 
 
          result.append(x) 
 
  print(result) # [300, 400, 500]
 
  #一行代碼方式
 
  result = [x for x in mylist if x > 250] 
 
  print(result) # [300, 400, 500]
 
 
  2 一行 While 循環(huán)
 
  這個 One-Liner 片段將向你展示如何在一行中使用 While 循環(huán)代碼,我已經(jīng)展示了兩種方法。
 
  #方法 1 Single Statement 
 
  while True: print(1) #infinite 1
 
  #方法 2 多語句
 
  x = 0 
 
  while x < 5: print(x); x= x + 1 # 0 1 2 3 4 5
 
 
  3 一行 IF Else 語句
 
  好吧,要在一行中編寫 IF Else 語句,我們將使用三元運(yùn)算符。三元的語法是“[on true] if [expression] else [on false]”。
 
  我在下面的示例代碼中展示了 3 個示例,以使你清楚地了解如何將三元運(yùn)算符用于一行 if-else 語句。要使用 Elif 語句,我們必須使用多個三元運(yùn)算符。
 
  #if Else 在一行中
 
  #Example 1 if else
 
  print(Yes) if 8 > 9 else print(No) # No
 
  #Example 2 if elif else 
 
  E = 2 
 
  print(High) if E == 5 else print(數(shù)據(jù)STUDIO) if E == 2 else 
 
  print(Low) # 數(shù)據(jù)STUDIO 
 
 
 
  #Example 3 only if
 
  if 3 > 2: print(Exactly) # Exactly
 
 
  4 一行合并字典
 
  這個 單行代碼段將向你展示如何使用一行代碼將兩個字典合并為一個。下面我展示了兩種合并字典的方法。
 
  # 在一行中合并字典
 
  d1 = { 'A': 1, 'B': 2 } 
 
  d2 = { 'C': 3, 'D': 4 }
 
  #方法 1 
 
  d1.update(d2) 
 
  print(d1) # {'A': 1, 'B': 2, 'C': 3, 'D': 4}
 
  #方法 2 
 
  d3 = {**d1, **d2} 
 
  print(d3) # {'A': 1, 'B': 2, 'C': 3, 'D': 4}
 
 
  5 一行函數(shù)
 
  我們有兩種方法可以在一行中編寫函數(shù),在第一種方法中,我們將使用與三元運(yùn)算符或單行循環(huán)方法相同的函數(shù)定義。
 
  第二種方法是用 lambda 定義函數(shù)。查看下面的示例代碼以獲得更清晰的理解。
 
  #函數(shù)在一行中
 
  #方法一
 
  def fun(x): return True if x % 2 == 0 else False 
 
  print(fun(2)) # False
 
  #方法2
 
  fun = lambda x : x % 2 == 0 
 
  print(fun(2)) # True 
 
  print(fun(3)) # False
 
 
  6 一行遞歸
 
  這個單行代碼片段將展示如何在一行中使用遞歸。我們將使用一行函數(shù)定義和一行 if-else 語句。下面是查找斐波那契數(shù)的示例。
 
  # 單行遞歸
 
  #Fibonaci 單行遞歸示例
 
  def Fib(x): return 1 if x in {0, 1} else Fib(x-1) + Fib(x-2)
 
  print(Fib(5)) # 8
 
  print(Fib(15)) # 987
 
 
  7 一行數(shù)組過濾
 
  Python 列表可以通過使用列表推導(dǎo)方法在一行代碼中進(jìn)行過濾。以過濾偶數(shù)列表為例。
 
  # 一行中的數(shù)組過濾
 
  mylist = [2, 3, 5, 8, 9, 12, 13, 15]
 
  #正常方式
 
  result = [] 
 
  for x in mylist: 
 
      if x % 2 == 0: 
 
          result.append(x)
 
  print(result) # [2, 8, 12]
 
  # 單線方式
 
  result = [x for x in mylist if x % 2 == 0] 
 
  print(result) # [2, 8, 12]
 
 
  8 一行異常處理
 
  我們使用異常處理來處理 Python 中的運(yùn)行時錯誤。你知道我們可以在一行中編寫這個 Try except 語句嗎?通過使用 exec() 語句,我們可以做到這一點。
 
  # 一行異常處理
 
  #原始方式
 
  try:
 
      print(x)
 
  except:
 
      print(Error)
 
  #單行方式
 
  exec('try:print(x) \nexcept:print(Error)') # 錯誤
 
 
  9 一行列表轉(zhuǎn)字典
 
  我們可以使用 Python enumerate() 函數(shù)將 List 轉(zhuǎn)換為一行字典。在enumerate() 中傳遞列表并使用dict() 將最終輸出轉(zhuǎn)換為字典格式。
 
  # 字典在一行
 
  mydict = [John, Peter, Mathew, Tom]
 
  mydict = dict(enumerate(mydict))
 
  print(mydict) # {0: 'John', 1: 'Peter', 2: 'Mathew', 3: 'Tom'}

 
  10 一行多變量
 
  Python 允許在一行中進(jìn)行多個變量賦值。下面的示例代碼將向你展示如何做到這一點。
 
  #多行變量
 
  #正常方式
 
  x = 5 
 
  y = 7 
 
  z = 10 
 
  print(x , y, z) # 5 7 10
 
  #單行方式
 
  a, b, c = 5, 7, 10 
 
  print(a, b, c) # 5 7 10

 
  11 一行交換值
 
  交換是編程中一項有趣的任務(wù),并且總是需要第三個變量名稱 temp 來保存交換值。這個單行代碼段將向你展示如何在沒有任何臨時變量的情況下交換一行中的值。
 
  #換成一行
 
  #正常方式
 
  v1 = 100
 
  v2 = 200
 
  temp = v1
 
  v1 = v2 
 
  v2 = temp
 
  print(v1, v2) # 200 100
 
  # 單行交換
 
  v1, v2 = v2, v1 
 
  print(v1, v2) # 200 100
 
 
  12 一行排序
 
  排序是編程中的一個普遍問題,Python 有許多內(nèi)置的方法來解決這個排序問題。下面的代碼示例將展示如何在一行中進(jìn)行排序。
 
  # 在一行中排序
 
  mylist = [32, 22, 11, 4, 6, 8, 12] 
 
  # 方法 1
 
  mylist.sort() 
 
  print(mylist) # # [4, 6, 8, 11, 12, 22, 32]
 
  print(sorted(mylist)) # [4, 6, 8, 11, 12, 22, 32]
 
 
  13 一行讀取文件
 
  不使用語句或正常讀取方法,也可以正確讀取一行文件。
 
  #一行讀取文件
 
  #正常方式
 
  with open(data.txt, r) as file: 
 
      data = file.readline() 
 
      print(data) # Hello world
 
  #單行方式
 
  data = [line.strip() for line in open(data.txt,r)] 
 
  print(data) # ['hello world', 'Hello Python']
 
 
  14 一行類
 
  上課總是多線工作。但是在 Python 中,有一些方法可以在一行代碼中使用類特性。
 
  # 一行中的類
 
  #普通方式
 
  class Emp: 
 
      def __init__(self, name, age): 
 
          self.name = name 
 
          self.age = age
 
          emp1 = Emp(云朵君, 22) 
 
  print(emp1.name, emp1.age) # 云朵君 22
 
  #單行方式
 
  #方法 1 帶有動態(tài) Artibutes 的 Lambda
 
  Emp = lambda:None; Emp.name = 云朵君; Emp.age = 22
 
  print(Emp.name, Emp.age) # 云朵君 22
 
  #方法 2 
 
  from collections import namedtuple
 
  Emp = namedtuple('Emp', [name, age]) (云朵君, 22) 
 
  print(Emp.name, Emp.age) # 云朵君 22
 
 
  15 一行分號
 
  一行代碼片段中的分號將向你展示如何使用分號在一行中編寫多行代碼。
 
  # 一行分號
 
  # 例 1 
 
  a = Python; b = 編程; c = 語言; print(a, b, c)
 
  # 輸出
 
  # Python 編程語言
 
 
  16 一行打印
 
  這不是很重要的片段,但有時當(dāng)你不需要使用循環(huán)來執(zhí)行任務(wù)時它很有用。
 
  # 一行打印
 
  #正常方式
 
  for x in range(1, 5):
 
      print(x) # 1 2 3 4
 
  #單行方式
 
  print(*range(1, 5)) # 1 2 3 4
 
  print(*range(1, 6)) # 1 2 3 4 5
 
 
  17 一行map函數(shù)
 
  Map 函數(shù)是適用的高階函數(shù)。這將函數(shù)應(yīng)用于每個元素。下面是我們?nèi)绾卧谝恍写a中使用 map 函數(shù)的示例。
 
  #在一行中map
 
  print(list(map(lambda a: a + 2, [5, 6, 7, 8, 9, 10])))
 
  # 輸出
 
  # [7, 8, 9, 10, 11, 12]
 
 
  18 刪除列表第一行中的 Mul 元素
 
  你現(xiàn)在可以使用 del 方法在一行代碼中刪除 List 中的多個元素,而無需進(jìn)行任何修改。
 
  # 刪除一行中的Mul元素
 
  mylist = [100, 200, 300, 400, 500]
 
  del mylist[1::2]
 
  print(mylist) # [100, 300, 500]
 
 
  19 一行打印圖案
 
  現(xiàn)在你不再需要使用for循環(huán)來打印相同的圖案。你可以使用 print 語句和星號 (*) 在一行代碼中執(zhí)行相同的操作。
 
  # 在一行中打印圖案# 
 
  # 正常方式
 
  for x in range(3):
 
      print('??')
 
  # 輸出
 
  # ?? ?? ??
 
  #單行方式
 
  print('??' * 3) # ?? ?? ?? 
 
  print('??' * 2) # ?? ?? 
 
  print('??' * 1) # ??
 
 
  20 一行查找質(zhì)數(shù)
 
  此代碼段將向你展示如何編寫單行代碼來查找范圍內(nèi)的素數(shù)。
 
  # 查找質(zhì)數(shù)
 
  print(list(filter(lambda a: all(a % b != 0 for b in range(2, a)),
 
                    range(2,20))))
 
  # 輸出
 
  # [2, 3, 5, 7, 11, 13, 17, 19]
主站蜘蛛池模板: 不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰]-不锈钢法兰-碳钢法兰-法兰盘生产加工厂家-[鼎捷峰] | 外贮压-柜式-悬挂式-七氟丙烷-灭火器-灭火系统-药剂-价格-厂家-IG541-混合气体-贮压-非贮压-超细干粉-自动-灭火装置-气体灭火设备-探火管灭火厂家-东莞汇建消防科技有限公司 | 长沙广告公司|长沙广告制作设计|长沙led灯箱招牌制作找望城湖南锦蓝广告装饰工程有限公司 | 变色龙PPT-国内原创PPT模板交易平台 - PPT贰零 - 西安聚讯网络科技有限公司 | 河南不锈钢水箱_地埋水箱_镀锌板水箱_消防水箱厂家-河南联固供水设备有限公司 | 哲力实业_专注汽车涂料汽车漆研发生产_汽车漆|修补油漆品牌厂家 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 北京三友信电子科技有限公司-ETC高速自动栏杆机|ETC机柜|激光车辆轮廓测量仪|嵌入式车道控制器 | 据信,上课带着跳 D 体验-别样的课堂刺激感受引发网友热议 | 洗石机-移动滚筒式,振动,螺旋,洗矿机-青州冠诚重工机械有限公司 | 浙江华锤电器有限公司_地磅称重设备_防作弊地磅_浙江地磅售后维修_无人值守扫码过磅系统_浙江源头地磅厂家_浙江工厂直营地磅 | 健康管理师报名入口,2025年健康管理师考试时间信息网-网站首页 塑料造粒机「厂家直销」-莱州鑫瑞迪机械有限公司 | 拉力机-拉力试验机-万能试验机-电子拉力机-拉伸试验机-剥离强度试验机-苏州皖仪实验仪器有限公司 | 智能化的检漏仪_气密性测试仪_流量测试仪_流阻阻力测试仪_呼吸管快速检漏仪_连接器防水测试仪_车载镜头测试仪_奥图自动化科技 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | 广东高华家具-公寓床|学生宿舍双层铁床厂家【质保十年】 | 便携式表面粗糙度仪-彩屏硬度计-分体式粗糙度仪-北京凯达科仪科技有限公司 | 桑茶-七彩贝壳桑叶茶 长寿茶 | 翰墨AI智能写作助手官网_人工智能问答在线AI写作免费一键生成 | 亮化工程,亮化设计,城市亮化工程,亮化资质合作,长沙亮化照明,杰奥思【官网】 | 伟秀电气有限公司-10kv高低压开关柜-高低压配电柜-中置柜-充气柜-欧式箱变-高压真空断路器厂家 | 等离子空气净化器_医用空气消毒机_空气净化消毒机_中央家用新风系统厂家_利安达官网 | 拼装地板,悬浮地板厂家,悬浮式拼装运动地板-石家庄博超地板科技有限公司 | SMC-SMC电磁阀-日本SMC气缸-SMC气动元件展示网 | 恒温恒湿试验箱_高低温试验箱_恒温恒湿箱-东莞市高天试验设备有限公司 | 环保袋,无纺布袋,无纺布打孔袋,保温袋,环保袋定制,环保袋厂家,环雅包装-十七年环保袋定制厂家 | 双相钢_双相不锈钢_双相钢圆钢棒_双相不锈钢报价「海新双相钢」 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 湖北省煤炭供应链综合服务平台 | KBX-220倾斜开关|KBW-220P/L跑偏开关|拉绳开关|DHJY-I隔爆打滑开关|溜槽堵塞开关|欠速开关|声光报警器-山东卓信有限公司 | 北京征地律师,征地拆迁律师,专业拆迁律师,北京拆迁律师,征地纠纷律师,征地诉讼律师,征地拆迁补偿,拆迁律师 - 北京凯诺律师事务所 | 学校用栓剂模,玻璃瓶轧盖钳,小型安瓿熔封机,实验室安瓿熔封机-长沙中亚制药设备有限公司 | 杭州货架订做_组合货架公司_货位式货架_贯通式_重型仓储_工厂货架_货架销售厂家_杭州永诚货架有限公司 | 全自动真空上料机_粉末真空上料机_气动真空上料机-南京奥威环保科技设备有限公司 | 油缸定制-液压油缸厂家-无锡大鸿液压气动成套有限公司 | 沙盘模型公司_沙盘模型制作公司_建筑模型公司_工业机械模型制作厂家 | 假肢-假肢价格-假肢厂家-河南假肢-郑州市力康假肢矫形器有限公司 | 集装箱标准养护室-集装箱移动式养护室-广州璟业试验仪器有限公司 | 神超官网_焊接圆锯片_高速钢锯片_硬质合金锯片_浙江神超锯业制造有限公司 | 厂房出租_厂房出售_产业园区招商_工业地产&nbsp;-&nbsp;中工招商网 | 油漆辅料厂家_阴阳脚线_艺术漆厂家_内外墙涂料施工_乳胶漆专用防霉腻子粉_轻质粉刷石膏-魔法涂涂 | 成都LED显示屏丨室内户外全彩led屏厂家方案报价_四川诺显科技 | 广州企亚 - 数码直喷、白墨印花、源头厂家、透气无手感方案服务商! |