python學習日記:day16-------內置函數與匿名函數

来源:https://www.cnblogs.com/kakawith/archive/2018/01/05/8204921.html
-Advertisement-
Play Games

一、內置函數 1,數據類型:int,bool .......... 2,數據結構:dict,list,tuple,set,str 3,reversed--保留原列表,返回一個反序的迭代器 4,slice切片 l =(1,2,23,213,5612,234,43) sli =slice(1,5,2) ...


一、內置函數

1,數據類型:int,bool ..........

2,數據結構:dict,list,tuple,set,str 

3,reversed--保留原列表,返回一個反序的迭代器 

reversed()
l =[1,2,3,4,5]
l2 =reversed(l)
print(l2)

 

4,slice切片 
l =(1,2,23,213,5612,234,43)
sli =slice(1,5,2)
print(l[sli])

#(2,213)

5,format 

print(format('test', '<20'))
print(format('test', '>40'))
print(format('test', '^40'))

6,bytes

#bytes 轉換成bytes類型
# 我拿到的是gbk編碼的,我想轉成utf-8編碼
# print(bytes('你好',encoding='GBK')) # unicode轉換成GBK的bytes
# print(bytes('你好',encoding='utf-8')) # unicode轉換成utf-8的bytes
7,bytearray
b_array = bytearray('你好',encoding='utf-8')
print(b_array)
print(b_array[0])
7,zip 
l = [1,2,3,4,5]
l2 = ['a','b','c','d']
l3 = ('*','**',[1,2])
d = {'k1':1,'k2':2}
for i in zip(l,l2,l3,d):
    print(i)

8,all

只有有一個為false則返回false

9,any

只要有一個為True則為True

10,filter

執行了filter之後的結果集合一定是《= 執行之前的個數 

#filter只管篩選,不會改變原來的值 

11,map

#執行前後元素的個數不變,值可能發生改 

12,sorted

#用c語言編寫。 數據少、短、且要保留原來的列表 二、匿名函數
def add(x,y):
    return x+y

轉換成匿名函數為:

add = lambda x,y:x+y
print(add(1,2))

1,找出value值最大的key

dic={'k1':10,'k2':100,'k3':30}
def func(key):
    return dic[key]
print(max(dic,key=func))   #根據返回值判斷最大值,返回值最大的那個參數是結果
print(max(dic,key=lambda key:dic[key]))
max([1,2,3,4,5,-6,-7],key=abs)

2,說出代碼的最終結果

d = lambda p:p*2
t = lambda p:p*3
x = 2
x = d(x) #x = 4
x = t(x) #x = 12
x = d(x) #x = 24
print(x)
#--->24

3、

#現有兩元組(('a'),('b')),(('c'),('d')),
# 請使用python中匿名函數生成列表[{'a':'c'},{'b':'d'}]


ret = zip((('a'),('b')),(('c'),('d')))
ret = map(lambda t:{t[0]:t[1]},ret)
print(list(ret))
4,以下代碼的輸出是什麼?請給出答案並解釋。
def multipliers():
    return [lambda x:i*x for i in range(4)]
print([m(2) for m in multipliers()])
請修改multipliers的定義來產生期望的結果。
def multipliers():
    return (lambda x:i*x for i in range(4))#改為生成器
print([m(2) for m in multipliers()])

 

 

 

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 方法和c++中的函數類似,區別在於java的方法定義不限位置,而c++中的定義在主函數後面的函數調用前要聲明: 求矩形面積方法示例: 輸出:面積是:30 調用過程分析: 1.從main進入,開始執行程式 2.調用getArea方法,傳遞參數,得到返回值 3.輸出 調用過程記憶體分析: 1.程式運行時期 ...
  • 相關介紹:  括弧分隔符匹配問題是指,判斷所輸入的字元串表達式中的括弧是否匹配的問題,例如1+(12+2)\ (1+2)便是一個括弧分隔符匹配的表達式,而(12+1) 4+(12/2]就是一個括弧分隔符不匹配的表達式  判斷一個表達式括弧分隔符是否匹配,其思路如下:依次讀取該表達 ...
  • 枚舉類型 枚舉類型就是預先定義的一類常量集合,如一周的時間、水果的類型等。需要註意的幾點內容如下: 定義枚舉類時,Java預設繼承java.lang.Enum,所以定義的枚舉類不能繼承其他類型; 枚舉類中可以包含成員變數、成員函數,但枚舉常量的定義再所有field和method之前,並以“;”結束; ...
  • 1. try & except 原程式: 1 import math 2 3 while True: 4 text = raw_input('> ') 5 if text[0] == 'q': 6 break 7 x = float(text) 8 y = math.log10(x) 9 print ...
  • 相關介紹:  在java中,整數是有最大上限的。所謂大數是指超過整數最大上限的數,例如18 452 543 389 943 209 789 324 233和8 123 534 323 432 323 432 123 212 443就是兩個大數,在java中這是無法用整型int變數或長整型l ...
  • 1.數組的定義: 第一種: public class ArrayDemo{ public static void main(String[] args){ //定義數組 int [] arr = new int[3]; //數組中的元素預設值為0 System.out.println(arr[0]) ...
  • 恢復內容開始 1.python2.x與python3.x的區別 (1) 2.x的預設編碼是ASSIC碼,不支持中文 (2) 3.x的預設編碼是UNICODE,支持中文 (3) 2.x版本與3.x版本是互不相容的 (4) 3.x的語法更劍明,易學 2.32bits系統and64bits系統 支持最大的 ...
  • 一、DBUtils DBUtils是Python的一個用於實現資料庫連接池的模塊。 連接池的三種模式: 第一種模式: 它的缺點:每一次請求反覆創建資料庫的鏈接,鏈接的次數太多 from flask import Flask from db import POOL import pymysql app ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...