Python_常見內置函數

来源:https://www.cnblogs.com/shz-blog/archive/2020/03/28/12551738.html
-Advertisement-
Play Games

1. 方法 註:class(類)是具有相同的屬性和方法的對象的集合。 2. 例子 (1)數據/集合類型 str(object=''); str(object=b'', encoding='utf-8', errors='strict') int(x, base=10) float(x=0) comp ...


1. 方法

 註:class(類)是具有相同的屬性和方法的對象的集合。

2. 例子

 (1)數據/集合類型

  • str(object=''); str(object=b'', encoding='utf-8', errors='strict')
  • int(x, base=10)
  • float(x=0)
  • complex(real=0, imag=0)
 1 >>> str(123)
 2 '123'
 3 >>> str(['a', 'b', 'c'])
 4 "['a', 'b', 'c']"
 5 >>> str(123).join(['a', 'b', 'c'])
 6 'a123b123c'
 7 >>> int('123')
 8 123
 9 >>> float('123')
10 123.0
11 >>> (0.75).as_integer_ratio()
12 (3, 4)
13 >>> (1.0).is_integer()
14 True
15 >>> complex(1, 2)
16 (1+2j)
17 >>> complex(1, 2).conjugate()
18 (1-2j)

註:str方法,詳情見https://www.cnblogs.com/shz-blog/p/12426630.html

  • range(stop), range(start, stop[, step])
  • tuple(iterable=())
  • list([iterable])
  • dict(); dict(mapping); dict(iterable); dict(**kwargs)
 1 >>> r = range(40, 1, -3)
 2 >>> t = tuple(r)
 3 >>> l = list(r)
 4 >>> t
 5 (40, 37, 34, 31, 28, 25, 22, 19, 16, 13, 10, 7, 4)
 6 >>> l
 7 [40, 37, 34, 31, 28, 25, 22, 19, 16, 13, 10, 7, 4]
 8 >>> r.count(1)
 9 0
10 >>> r.index(31)
11 3
12 >>> t.count(10)
13 1
14 >>> t.index(31)
15 3
16 >>> l.sort()
17 >>> l
18 [4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40]
19 >>> dict(a=1, b=2, c=3)
20 {'a': 1, 'b': 2, 'c': 3}
21 >>> dict(zip(list('abc'), [1, 2, 3]))
22 {'a': 1, 'b': 2, 'c': 3}
23 >>> dict([('a', 1), ('b', 2), ('c', 3)])
24 {'a': 1, 'b': 2, 'c': 3}
25 >>> dict(a=1, b=2, c=3).items()
26 dict_items([('a', 1), ('b', 2), ('c', 3)])

註:list方法,詳情見https://www.cnblogs.com/shz-blog/p/12438954.html

    dict方法,詳情見https://www.cnblogs.com/shz-blog/p/12456194.html

  • set([iterable])
  • frozenset([iterable])
 1 >>> s1 = set('hello')
 2 >>> s1
 3 {'o', 'h', 'e', 'l'}
 4 >>> s1.add(123)
 5 >>> s1
 6 {'o', 'l', 'h', 'e', 123}
 7 >>> s1.discard('o')
 8 >>> s1
 9 {'l', 'h', 'e', 123}
10 >>> s2 = set('lemon')
11 >>> s2
12 {'o', 'l', 'e', 'm', 'n'}
13 >>> s1.update(s2)
14 >>> s1
15 {'o', 'l', 'h', 'e', 'm', 'n', 123}
 1 >>> a = frozenset('hello world')
 2 >>> a
 3 frozenset({'w', 'l', ' ', 'r', 'o', 'h', 'd', 'e'})
 4 >>> b = frozenset(range(5))
 5 >>> b
 6 frozenset({0, 1, 2, 3, 4})
 7 >>> c = frozenset(range(2,7))
 8 >>> c
 9 frozenset({2, 3, 4, 5, 6})
10 >>> b.union(c)    # 並集
11 frozenset({0, 1, 2, 3, 4, 5, 6})
12 >>> b.intersection(c)    # 交集
13 frozenset({2, 3, 4})
14 >>> b.difference(c)    # 差集
15 frozenset({0, 1})
16 >>> c.difference(b)    # 差集
17 frozenset({5, 6})
18 >>> b.symmetric_difference(c)    # 對稱差集
19 frozenset({0, 1, 5, 6})
20 >>> b.isdisjoint(c)    # 是否沒有交集
21 False
22 >>> d = frozenset(range(2,5))
23 >>> d
24 frozenset({2, 3, 4})
25 >>> d.issubset(b)    # 是否被包含
26 True
27 >>> b.issuperset(d)    # 是否包含
28 True
29 >>> e = d.copy()    #複製
30 >>> id(d) == id(e)
31 True
  •  bytearray和bytes
 1 >>> bytes()
 2 b''
 3 >>> bytes(3)
 4 b'\x00\x00\x00'
 5 >>> bytes('abc', 'utf-8')
 6 b'abc'
 7 >>> bytes([1, 2, 3])
 8 b'\x01\x02\x03'
 9 >>> b'abcd'.replace(b'bc', b'XY')
10 b'aXYd'
11 
12 >>> B = b'abc'
13 >>> BA = bytearray(B)
14 >>> BA
15 bytearray(b'abc')
16 >>> [i for i in B]
17 [97, 98, 99]
18 >>> [i for i in BA]
19 [97, 98, 99]
20 >>> B[0] = 65
21 Traceback (most recent call last):
22   File "<pyshell#25>", line 1, in <module>
23     B[0] = 65
24 TypeError: 'bytes' object does not support item assignment
25 >>> BA[0] = 65
26 >>> BA
27 bytearray(b'Abc')

(2)操作

  • format(value, format_spec='')

  詳情見https://www.cnblogs.com/shz-blog/p/12422194.html

  • len(obj)
  • sorted(iterable, key=None, reverse=False)
  • reversed(sequence)
  • slice(stop); slice(start, stop[, step])
 1 >>> L = list('abcde')
 2 >>> L
 3 ['a', 'b', 'c', 'd', 'e']
 4 >>> len(L)
 5 5
 6 >>> sorted(L, reverse=True)
 7 ['e', 'd', 'c', 'b', 'a']
 8 >>> list(reversed(L))
 9 ['e', 'd', 'c', 'b', 'a']
10 >>> L[slice(1, 4, 2)]
11 ['b', 'd']
  • enumerate(iterable, start=0)
  • zip(iter1 [,iter2 [...]])
  • map(func, *iterables)
 1 >>> l1 = [1, 2, 3]
 2 >>> l2 = [4, 5, 6]
 3 >>> l3 = [7, 8, 9, 10]
 4 
 5 >>> list(enumerate(l3))
 6 [(0, 7), (1, 8), (2, 9), (3, 10)]
 7 
 8 >>> list(zip(l1, l2))
 9 [(1, 4), (2, 5), (3, 6)]
10 >>> list(zip(l1, l3))
11 [(1, 7), (2, 8), (3, 9)]
12 >>> list(zip(*zip(l1, l3)))    # *理解為解壓
13 [(1, 2, 3), (7, 8, 9)]
14 
15 >>> list(map(lambda x: x * 3, l1))
16 [3, 6, 9]
17 >>> list(map(lambda x, y: x + y, l1, l2))
18 [5, 7, 9]

(3)輸入輸出

  •  input(prompt=None)
  • open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
  • print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
1 >>> age = input('請輸入年齡:')
2 請輸入年齡:18
3 >>> age
4 '18'
5 >>> type(age)
6 <class 'str'>

 註:open的用法,詳情見https://www.cnblogs.com/sesshoumaru/p/6047046.html

        文件的打開、讀取等各種操作,詳情見https://www.cnblogs.com/hackpig/p/8215786.html

1 >>> print('hello world', 'hello Bunny', sep='\n', end='_'*10)
2 hello world
3 hello Bunny__________

註:flush的用法,參考https://blog.csdn.net/Zhongjie1986/article/details/91890109

(4)數學函數

  • abs(x)
  • divmod(x, y)
  • pow(x, y, z=None)
  • round(number, ndigits=None)
  • sum(iterable, start=0)
  • max(arg1, arg2, *args, *[, key=func]); max(iterable, *[, default=obj, key=func])
  • min(arg1, arg2, *args, *[, key=func]); min(iterable, *[, default=obj, key=func])
 1 >>> abs(-10)
 2 10
 3 >>> divmod(11, 3)
 4 (3, 2)
 5 >>> pow(2, 3)
 6 8
 7 >>> pow(2, 3, 3)
 8 2
 9 >>> round(1.2345, 2)
10 1.23
11 >>> sum(range(5))
12 10
 1 >>> max(1, 2, 3)
 2 3
 3 >>> max(1, 2, '3')
 4 Traceback (most recent call last):
 5   File "<pyshell#1>", line 1, in <module>
 6     max(1, 2, '3')
 7 TypeError: '>' not supported between instances of 'str' and 'int'
 8 >>> max(1, 2, '3', key=int)
 9 '3'
10 >>> max(-3, 1, 2, key=abs)
11 -3
12 >>> max('123')
13 '3'
14 >>> max([1, 8], [2, 6], [3, 4])
15 [3, 4]
16 >>> couple = ({'name': 'Bunny', 'age': 18, 'salary': 888}, {'name': 'Twan', 'age': 20, 'salary': 666})
17 >>> max(couple, key=lambda x: x['age'])
18 {'name': 'Twan', 'age': 20, 'salary': 666}
19 >>> max((), default=0)
20 0

 (5)編碼

  • bin(number), oct(number), hex(number)
  • chr(i), ord(c), ascii(obj), repr(obj)
 1 >>> bin(10)
 2 '0b1010'
 3 >>> oct(10)
 4 '0o12'
 5 >>> hex(10)
 6 '0xa'
 7 >>> chr(65)
 8 'A'
 9 >>> ord('A')
10 65
11 >>> ascii('hello world')
12 "'hello world'"
13 >>> repr('hello world')
14 "'hello world'"
15 >>> ascii('你好,世界')
16 "'\\u4f60\\u597d\\uff0c\\u4e16\\u754c'"
17 >>> repr('你好,世界')
18 "'你好,世界'"

(6)判斷

  • bool(x), all(iterable), any(iterable), callable(object)
 1 >>> all(['a', 'b', 'c'])
 2 True
 3 >>> all(['a', 'b', '', 'c'])
 4 False
 5 >>> all([])
 6 True
 7 >>> any([0, '', False])
 8 False
 9 >>> any([])
10 False
11 >>> callable(str)
12 True
13 >>> callable('hello world')
14 False

(7)迭代器

  • iter(iterable); iter(callable, sentinel)
  • next(iterator[, default])
  • filter(function or None, iterable)
 1 >>> for i in iter(list('abc')):
 2       print(i)
 3     
 4 a
 5 b
 6 c
 7 
 8 >>> from random import randint
 9 >>> def guess():
10     return randint(0,10)
11 >>> num = 1
12 >>> for i in iter(guess, 5):
13     print('第%s次猜測,猜測數字為:%s' % (num, i))
14     num += 1
15     
16 第1次猜測,猜測數字為:3
17 第2次猜測,猜測數字為:1

註:猜數字的例子來自http://www.imooc.com/article/287997

 1 >>> i = iter(list('abc'))
 2 >>> next(i)
 3 'a'
 4 >>> next(i)
 5 'b'
 6 >>> next(i)
 7 'c'
 8 >>> next(i)
 9 Traceback (most recent call last):
10   File "<pyshell#27>", line 1, in <module>
11     next(i)
12 StopIteration
13 >>> next(i, 0)
14 0
1 >>> def is_odd(n):
2     return n % 2 == 1
3 
4 >>> oldlist = [i for i in range(1,11)]
5 >>> oldlist
6 [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
7 >>> newlist = list(filter(is_odd, oldlist))
8 >>> newlist
9 [1, 3, 5, 7, 9]

 (8)屬性操作

  • getattr(obj, name[, default])
  • setattr(obj, name, value)
  • hasattr(obj, name)
  • delattr(obj, name)
 1 >>> class Person:
 2       name = 'Bunny'
 3       age = 18
 4       sex = ''
 5 
 6 >>> Person.name
 7 'Bunny'
 8 >>> Person.country
 9 Traceback (most recent call last):
10   File "<pyshell#6>", line 1, in <module>
11     Person.country
12 AttributeError: type object 'Person' has no attribute 'country'
13 >>> getattr(Person, 'age', 0)
14 18
15 >>> getattr(Person, 'country', 0)
16 0
17 >>> setattr(Person, 'country', 'China')
18 >>> getattr(Person, 'country', 0)
19 'China'
20 >>> delattr(Person, 'sex')
21 >>> hasattr(Person, 'sex')
22 False

(9)輔助函數

  • dir([object])
1 >>> dir()
2 ['__annotations__', '__builtins__', '__doc__', '__loader__', '__name__', '__package__', '__spec__']
3 >>> dir(dict)
4 ['__class__', '__contains__', '__delattr__', '__delitem__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__iter__', '__le__', '__len__', '__lt__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__setitem__', '__sizeof__', '__str__', '__subclasshook__', 'clear', 'copy', 'fromkeys', 'get', 'items', 'keys', 'pop', 'popitem', 'setdefault', 'update', 'values']
  • help([object])
1 >>> help(hash)
2 Help on built-in function hash in module builtins:
3 
4 hash(obj, /)
5     Return the hash value for the given object.
6     
7     Two objects that compare equal must also have the same hash value, but the
8     reverse is not necessarily true.
  •  hash(obj)
1 >>> hash('hello world')
2 -8331809543453374991
3 >>> hash(tuple('abcde'))
4 5996617995451668254

  哈希的相關知識點:https://www.cnblogs.com/abdm-989/p/11329122.html

  • id([object])
1 >>> a = 'hello world'
2 >>> b = a
3 >>> id(a)
4 1873301041520
5 >>> id(b)
6 1873301041520
  • memoryview(object)
1 >>> a = memoryview(bytearray('abcde', 'utf-8'))
2 >>> a[1]
3 98
4 >>> a[1:3]
5 <memory at 0x0000017F63B83408>
6 >>> a[1:3].tobytes()
7 b'bc'
8 >>> a[1:3].tolist()
9 [98, 99]

優點:memoryview減少記憶體拷貝,優化效率(詳情可參考https://www.hustyx.com/python/222/

  • type(object), type(name, bases, dict)
  • issubclass(cls, class_or_tuple)
  • isinstance(obj, class_or_tuple)
1 >>> a = 2
2 >>> type(a)
3 <class 'int'>
4 >>> isinstance(a, int)
5 True
6 >>> isinstance(a, str)
7 False
8 >>> isinstance(a, (str, int, list))    # 是元組中的一個就返回True
9 True
 1 >>> class A:
 2    pass
 3 
 4 >>> class B(A):
 5    pass
 6 
 7
              
您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 最近因為使用列表展示的需求有點多,就想著把列表分頁篩選的邏輯抽象一下。看了umi的一個useTable的hook,也不能滿足業務需要,於是就自己寫了一個,支持本地分頁篩選和介面分頁篩選。 思路就是,篩選的欄位都使用form表單控制,然後在hook裡面將form和table聯合起來。 下麵貼出源碼 1 ...
  • 新手學vue還是react?下麵本篇文章給大家分析一下。有一定的參考價值,正在學習或者有需要的朋友可以參考一下,希望對大家有所幫助。 出身背景: react是facebook團隊開發,2013.3月發佈。目前版本15.5.4(初始版本是13開頭),社區較成熟,擁有更大的生態圈 vue是Evan Yo ...
  • 工作中我們經常會有向別人描述項目內容,解釋某一個功能的運作過程等情況。除了文字描述外,配合圖的方式來說明,增加了問題的具象化能力,方便溝通和對方理解。我剛開始一直想用一種圖來表述所有內容,但是實際上沒有一種圖可以做到,即使可以做到,那麼會使得這種圖變得複雜,也不符合人類的接受能力。用對應的圖說明對應 ...
  • 圖解Java設計模式之模板模式 豆漿製作問題 模板方法模式基本介紹 模板方法模式原理類圖 模板方法模式解決豆漿製作問題 模板方法模式的鉤子方法 模板方法模式在Spring框架中的源碼分析 模板方法模式的註意事項和細節 豆漿製作問題 1)製作豆漿的流程 選材 – 》添加配料 --》浸泡 --》放到豆漿 ...
  • 目錄 . 一、基本概念 . 1、背景 . 2、簡介 . 3、特點 . 4、基礎模型 . 5、Apollo 的四個維度 . 6、本地緩存 . 7、客戶端設計 . 8、總體設計 . 9、可用性考慮 . 二、Apollo 配置中心創建項目與配置 . 1、登錄 Apollo . 2、修改與增加部門數據 . ...
  • 實現步驟 1.導包:import java.util.Scanner; 2.Scanner類的實例化:Scanner scan = new Scanner(System.in); 3.調用Scanner類的相關方法(next() nextInt())獲取指定類型的變數; 註意:在控制台,如果輸入的類 ...
  • 一、分類 順序結構:程式從上而下依次執行 分支結構:if-else if-else、switch-case 迴圈結構:while迴圈、for迴圈、do-while迴圈、增強for迴圈 二、具體說明 1.分支結構 1.1if分支結構 說明 1.else結構是可選的; 2.if-else結構可以嵌套使用 ...
  • 原文鏈接:http://www.yiidian.com/servlet/servlet how work.html 接下來我們有必要瞭解下Servlet的工作原理,這樣才能更好地理解Servlet。本文我們將以之前開發過的Servlet程式來講解Servlet的內部細節。 1 Servlet基本執行 ...
一周排行
    -Advertisement-
    Play Games
  • 新改進提供的Taurus Rpc 功能,可以簡化微服務間的調用,同時可以不用再手動輸出模塊名稱,或調用路徑,包括負載均衡,這一切,由框架實現並提供了。新的Taurus Rpc 功能,將使得服務間的調用,更加輕鬆、簡約、高效。 ...
  • 本章將和大家分享ES的數據同步方案和ES集群相關知識。廢話不多說,下麵我們直接進入主題。 一、ES數據同步 1、數據同步問題 Elasticsearch中的酒店數據來自於mysql資料庫,因此mysql數據發生改變時,Elasticsearch也必須跟著改變,這個就是Elasticsearch與my ...
  • 引言 在我們之前的文章中介紹過使用Bogus生成模擬測試數據,今天來講解一下功能更加強大自動生成測試數據的工具的庫"AutoFixture"。 什麼是AutoFixture? AutoFixture 是一個針對 .NET 的開源庫,旨在最大程度地減少單元測試中的“安排(Arrange)”階段,以提高 ...
  • 經過前面幾個部分學習,相信學過的同學已經能夠掌握 .NET Emit 這種中間語言,並能使得它來編寫一些應用,以提高程式的性能。隨著 IL 指令篇的結束,本系列也已經接近尾聲,在這接近結束的最後,會提供幾個可供直接使用的示例,以供大伙分析或使用在項目中。 ...
  • 當從不同來源導入Excel數據時,可能存在重覆的記錄。為了確保數據的準確性,通常需要刪除這些重覆的行。手動查找並刪除可能會非常耗費時間,而通過編程腳本則可以實現在短時間內處理大量數據。本文將提供一個使用C# 快速查找並刪除Excel重覆項的免費解決方案。 以下是實現步驟: 1. 首先安裝免費.NET ...
  • C++ 異常處理 C++ 異常處理機制允許程式在運行時處理錯誤或意外情況。它提供了捕獲和處理錯誤的一種結構化方式,使程式更加健壯和可靠。 異常處理的基本概念: 異常: 程式在運行時發生的錯誤或意外情況。 拋出異常: 使用 throw 關鍵字將異常傳遞給調用堆棧。 捕獲異常: 使用 try-catch ...
  • 優秀且經驗豐富的Java開發人員的特征之一是對API的廣泛瞭解,包括JDK和第三方庫。 我花了很多時間來學習API,尤其是在閱讀了Effective Java 3rd Edition之後 ,Joshua Bloch建議在Java 3rd Edition中使用現有的API進行開發,而不是為常見的東西編 ...
  • 框架 · 使用laravel框架,原因:tp的框架路由和orm沒有laravel好用 · 使用強制路由,方便介面多時,分多版本,分文件夾等操作 介面 · 介面開發註意欄位類型,欄位是int,查詢成功失敗都要返回int(對接java等強類型語言方便) · 查詢介面用GET、其他用POST 代碼 · 所 ...
  • 正文 下午找企業的人去鎮上做貸後。 車上聽同事跟那個司機對罵,火星子都快出來了。司機跟那同事更熟一些,連我在內一共就三個人,同事那一手指桑罵槐給我都聽愣了。司機也是老社會人了,馬上聽出來了,為那個無辜的企業經辦人辯護,實際上是為自己辯護。 “這個事情你不能怪企業。”“但他們總不能讓銀行的人全權負責, ...
  • 1. JUnit 最佳實踐指南 原文: https://howtodoinjava.com/best-practices/unit-testing-best-practices-junit-reference-guide/ 我假設您瞭解 JUnit 的基礎知識。 如果您沒有基礎知識,請首先閱讀(已針 ...