日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

Python数据类型——整型、布尔型、列表、元祖、字典

發(fā)布時(shí)間:2025/5/22 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python数据类型——整型、布尔型、列表、元祖、字典 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python解釋器可以自動(dòng)識(shí)別用戶輸入的數(shù)據(jù)類型。創(chuàng)建對(duì)象的數(shù)據(jù)類型,可以通過(guò)type查看。需要注意的是:用戶通過(guò)input輸入的數(shù)據(jù),其類型均為字符串

num1 = input("please input num1: ") num2 = input("please input num2: ") print("type of num1: ",type(num1),"type of num2: ",type(num2)) please input num1: test please input num2: 123 type of num1: <class 'str'> type of num2: <class 'str'>

整型

整型可分為整型(32位機(jī)器上整型的取值范圍為:-2* * 31~-2* *31)和長(zhǎng)整型。Python2.7中會(huì)自動(dòng)轉(zhuǎn)換數(shù)字為整型、長(zhǎng)整型。但在Python3.6中,不再有整型長(zhǎng)整型之分。
Python中提供了10進(jìn)制轉(zhuǎn)換為其他進(jìn)制的方法

  • 十進(jìn)制轉(zhuǎn)十六進(jìn)制
>>> hex(10) '0xa'
  • 十進(jìn)制轉(zhuǎn)八進(jìn)制
>>> oct(10) '0o12'
  • 十進(jìn)制轉(zhuǎn)二進(jìn)制
>>> bin(10) '0b1010'

在浮點(diǎn)數(shù)中,Python默認(rèn)的精度為17位,這個(gè)精度越到后面越不準(zhǔn)確。當(dāng)我們的計(jì)算需要使用更高精度的時(shí)候,可以使用“getcontext”和"Decimal"的方式來(lái)實(shí)現(xiàn)

>>> a = 3.141592653002154564564 >>> a 3.1415926530021547 >>> from decimal import * >>> getcontext() Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=[], traps=[InvalidOperation, DivisionByZero, Overflow]) >>> getcontext().prec = 50 >>> a = Decimal(1)/Decimal(3) >>> a Decimal('0.33333333333333333333333333333333333333333333333333')

整型的常用方法

  • int:強(qiáng)制類型轉(zhuǎn)換

    >>> a = "0xa" >>> print(int(a,base=16)) 10
  • bit_length:整數(shù)轉(zhuǎn)換成二進(jìn)制后所占最少bit位數(shù)

    >>> a = 10 >>> print(a.bit_length()) 4 >>> print(bin(a)) 0b1010
  • 布爾型

    包含True(非0)和False(0)。注意首字母大寫。以下內(nèi)容均為False:

    • None,空;
    • "",空字符串
    • (),空元祖;
    • [],空列表;
    • {},空字典
    • 數(shù)值0(整型、浮點(diǎn)型、復(fù)數(shù));
    a = ("", (), [], {}, 0, 1, 1.1, 0.0, 0+0j,) for i in a :if i :print("it is True.",i)else :print("it is False.",i) it is False. it is False. () it is False. [] it is False. {} it is False. 0 it is True. 1 it is True. 1.1 it is False. 0.0 it is False. 0j

    列表

    • 列表的形式:使用中括號(hào)括起來(lái)
    list #類,列表 li = [1,2,3,"li","liu"] #通過(guò)list類創(chuàng)建的對(duì)象
    • 列表可以嵌套使用:
    >>> li = ["test",223,"123",["12","ads"],{"name":"tuple"}] >>> print(li[4]["name"]) tuple
    • 列表中的元素可以是:數(shù)字、字符串、列表、布爾值、字典(注意字典的無(wú)序特性
    • 對(duì)列表進(jìn)行切片后,所得到的數(shù)據(jù)還是列表
    >>> li = ["test",223,"123",["12","ads"],{"name":"tuple"}] >>> print(li[0:2],type(li[0:3])) ['test', 223] <class 'list'>
    • 支持for、while循環(huán)提取所有子序列
    li = ["test",223,"123",["12","ads"],{"name":"tuple"}] l = len(li) num = 0 for i in li :print(i) while num < l :print(li[num])num += 1
    • 字符串在內(nèi)存中的地址是連續(xù)的,所以字符串的數(shù)值一旦發(fā)生改變,就需要重新開辟新的內(nèi)存空間。而列表不一樣,它的子序列的存儲(chǔ)地址是非連續(xù)的,元素的內(nèi)容可以被修改,被修改后元素對(duì)應(yīng)的內(nèi)存地址不會(huì)發(fā)生改變。這是因?yàn)槊總€(gè)元素是采用鏈表的形式存儲(chǔ)的(即每個(gè)元素的內(nèi)存空間中,不僅存放了元素的數(shù)值,而且還有下一個(gè)元素的內(nèi)存地址)。列表的元素可以使用索引進(jìn)行修改,也可以使用切片的方法進(jìn)行修改
    >>> li = ["test",223,"123",["12","ads"],{"name":"tuple"}] >>> li[1] = "liu" >>> li[2:4] = ["liu",234] >>> print(li) ['test', 'liu', 'liu', 234, {'name': 'tuple'}]
    • 列表元素的刪除
    >>> li = ["test",223,"123",["12","ads"],{"name":"tuple"}] >>> del li[0] >>> del li[0:2] >>> print(li) [['12', 'ads'], {'name': 'tuple'}]
    • 如果列表的元素中存在列表或者字符串的話,可以對(duì)元素再進(jìn)行索引或切片
    • 如果將一個(gè)字符串轉(zhuǎn)換成list后,會(huì)將字符串中的每個(gè)元素轉(zhuǎn)換成列表。int類型的對(duì)象不能轉(zhuǎn)換成list
    >>> string = "python" >>> print(list(string)) ['p', 'y', 't', 'h', 'o', 'n']
    • 列表轉(zhuǎn)換成字符串的時(shí)候,需要自己寫for循環(huán)。當(dāng)列表中的元素只有字符串時(shí),可以直接使用join
    li = ["test",223,"123",["12","ads"],{"name":"tuple"}] l = len(li) r = range(0,l) s = "" for i in r :s += str(li[i]) print(s) li02 = ["liu","hao","hai"] print("".join(li02)) test223123['12', 'ads']{'name': 'tuple'} liuhaohai

    列表的常用方法

  • append:在列表元素的最后進(jìn)行追加(不需要對(duì)append進(jìn)行賦值操作)

    >>> li = ["asd","fgh","liu"] >>> li.append("hai") >>> li.append(["lhh",123]) >>> print(li) ['asd', 'fgh', 'liu', 'hai', ['lhh', 123]]
  • clear:清空列表

    >>> li = ["asd","fgh","liu"] >>> li.clear() >>> print(li) []
  • copy:(淺)拷貝

    >>> li = ["asd","fgh","liu"] >>> v = li.copy() >>> print(v) ['asd', 'fgh', 'liu']
  • count:計(jì)算列表中元素出現(xiàn)的次數(shù)

    >>> li = [11,22,33,22,11] >>> print(li.count(22)) 2
  • extend:將extend后參數(shù)中每一個(gè)元素迭代append到原列表中。注意和append的區(qū)別

    >>> li = [11,22,33,22,11] >>> li.extend(["asd",44]) >>> print(li) [11, 22, 33, 22, 11, 'asd', 44] >>> li.append(["asd",44]) >>> print(li) [11, 22, 33, 22, 11, 'asd', 44, ['asd', 44]]
  • index:查看指定元素在列表中的下標(biāo)

    >>> li = [11,22,33,22,11] >>> print(li.index(22)) 1 >>> print(li.index(23)) Traceback (most recent call last):File "<stdin>", line 1, in <module> ValueError: 23 is not in list
  • insert:在列表中指定的下標(biāo)前插入對(duì)象

    >>> li = [11,22,33,22,11] >>> print(li.insert(1,["lhh",360])) None >>> li.insert(1,["lhh",360]) >>> print(li) [11, ['lhh', 360], ['lhh', 360], 22, 33, 22, 11]
  • pop:剔除指定下標(biāo)的元素(默認(rèn)剔除最后一個(gè)),并提取該元素的數(shù)值

    >>> li = [11,22,33,22,11] >>> li.pop(2) 33 >>> print(li) [11, 22, 22, 11]
  • remove:從左開始刪除指定元素,當(dāng)列表中同時(shí)存在多個(gè)相同的元素是,刪除第一個(gè)匹配的元素

    >>> li = [11,22,33,22,11] >>> li.remove(22) >>> print(li) [11, 33, 22, 11]
  • reverse:將列表中的元素反轉(zhuǎn)顯示

    >>> li = [1,2,3,4] >>> li.reverse() >>> print(li) [4, 3, 2, 1]
  • sort:將列表中的元素進(jìn)行排序(默認(rèn)為升序:reverse=False)

    >>> li = [1,2,3,4,8,5] >>> li.sort() >>> print(li) [1, 2, 3, 4, 5, 8] >>> li = [1,2,3,4,8,5] >>> li.sort(reverse=True) >>> print(li) [8, 5, 4, 3, 2, 1]
  • 元祖

    • 表現(xiàn)形式:使用小括號(hào)括起來(lái)的。元祖中的低級(jí)元素不可被修改,不支持增加刪除
    >>> tuple1 = (12,"dad",True,[12,23],(2,3,4),{"name":"lhh"}) >>> print(tuple1) (12, 'dad', True, [12, 23], (2, 3, 4), {'name': 'lhh'}) >>> tuple1[0] = "123" Traceback (most recent call last):File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment >>> tuple1[3][1] = "lhh" >>> print(tuple1) (12, 'dad', True, [12, 'lhh'], (2, 3, 4), {'name': 'lhh'})
    • 元組中的元素可以是:字符串、數(shù)字、布爾值、列表、元組、字典
    • 為了防止和類的方法混淆,一般元祖的最后,加上一個(gè)“,”,而元祖的長(zhǎng)度不會(huì)發(fā)生變化
    • 可以使用索引、切片查看元祖的元素,但是不能對(duì)元素增刪。可以被for/while循環(huán)
    >>> tuple1 = (12,"dad",True,[12,23],(2,3,4),{"name":"lhh"}) >>> print(tuple1[0:3]) (12, 'dad', True) >>> for i in tuple1 : ... print(i) ... 12 dad True [12, 23] (2, 3, 4) {'name': 'lhh'}
    • 字符串、列表都可以轉(zhuǎn)換為元祖
    >>> string = "python" >>> li = ["lhh",360,True] >>> print(tuple(string),tuple(li),sep="\n") ('p', 'y', 't', 'h', 'o', 'n') ('lhh', 360, True)
    • 元祖可以轉(zhuǎn)換成字符串、列表
    >>> tu = (123,"asd",True) >>> print(list(tu)) [123, 'asd', True] tu = (123,"asd",True) s = "" for i in tu :s += str(i) print(s) 123asdTrue

    元組的常用方法

  • count:統(tǒng)計(jì)元祖中指定元素出現(xiàn)的次數(shù)

    >>> tu = (11,22,33,2,22,) >>> print(tu.count(22)) 2
  • index:統(tǒng)計(jì)指定元素在元組中的下標(biāo)。出現(xiàn)多個(gè)相同元素時(shí),從左開始取第一個(gè)匹配的下標(biāo)

    >>> tu = (11,22,33,2,22,) >>> print(tu.index(22)) 1
  • 字典

    • 形式:使用大括號(hào)括起來(lái)。字典的鍵值對(duì)(key:value)中,value的類型可以是任意數(shù)據(jù)類型

      info = { "k1":"string", "k2":123, "k3":False, "k4":(123,"sd","hda"), "k5":["sdf",23], "k6":{"kk1":"sdf","kk2":123 } } print(info) {'k1': 'string', 'k2': 123, 'k3': False, 'k4': (123, 'sd', 'hda'), 'k5': ['sdf', 23], 'k6': {'kk1': 'sdf', 'kk2': 123}}
    • 列表、字典不能作為字典的key

      info = { 1:"string", False:123, (11,22):False, #[11,22]:123, #{"k1":"v1"}:123 } print(info) {1: 'string', False: 123, (11, 22): False}
    • 字典是無(wú)序的,無(wú)法通過(guò)切片的方式讀取元素的值。可以通過(guò)Key值,使用索引讀取某一個(gè)元素

    >>> info = {1: 'string', False: 123, (11, 22): False} >>> print(info[1]) string
    • 可以使用for循環(huán)提取字典中的key、value、key和value
    info = {1:"string",False:123,(11,22):False, } for i in info :print(i) for i in info.keys() :print(i) for i in info.values() :print(i) for i in info.items() :print(i) for i,j in info.items() :print(i,j) 1 False (11, 22) 1 False (11, 22) string 123 False (1, 'string') (False, 123) ((11, 22), False) 1 string False 123 (11, 22) False
    • 字典元素的刪除
    info = {"k1":"v1",1:True,("k3"):{"kk1":"lhh","kk2":123,"kk3":False,} } del info[("k3")]["kk3"] print(info) {'k1': 'v1', 1: True, 'k3': {'kk1': 'lhh', 'kk2': 123}}

    字典的常用方法

  • clear :清空字典中的所有元素

    >>> info = {1: 'string', False: 123, (11, 22): False} >>> info.clear() >>> print(info) {}
  • copy:(淺)拷貝

    >>> info = {1: 'string', False: 123, (11, 22): False} >>> info_bak = info.copy() >>> print(info_bak) {1: 'string', False: 123, (11, 22): False}
  • fromkeys:根據(jù)序列,創(chuàng)建字典,并為key指定統(tǒng)一的value。使用格式為dict.fromkyes(),而不是"dict類名稱.fromkey()"。fromkeys方法后最多只能只能有2個(gè)參數(shù),分別對(duì)應(yīng)key/value。當(dāng)只有1個(gè)參數(shù)時(shí),創(chuàng)建的字典的value為None

    >>> dict.fromkeys(("asdf",123,False)) {'asdf': None, 123: None, False: None} >>> dict.fromkeys(("asdf",123,False),123) {'asdf': 123, 123: 123, False: 123}
  • get:根據(jù)key,獲取value的值。如果key不存在,返回指定的值

    >>> info = {1: 'string', False: 123, (11, 22): False} >>> print(info.get(1)) string >>> print(info.get(True)) string >>> print(info.get("None")) None >>> print(info.get("None","space")) space
  • items:返回字典中的keys和values

    >>> info = {1: 'string', False: 123, (11, 22): False} >>> info.items() dict_items([(1, 'string'), (False, 123), ((11, 22), False)])
  • keys:返回字典中的Keys

    >>> info = {1: 'string', False: 123, (11, 22): False} >>> info.keys() dict_keys([1, False, (11, 22)])
  • pop:刪除字典中指定key對(duì)應(yīng)的鍵值對(duì)。如果key在字典中不存在,則返回None或者指定的值

    >>> info = {1: 'string', False: 123, (11, 22): False} >>> info.pop(False) 123 >>> print(info) {1: 'string', (11, 22): False} >>> info.pop("space","NONE") 'NONE' >>> print(info) {1: 'string', (11, 22): False}
  • popitem:刪除字典最后一個(gè)元素,返回值為該元素的key:value

    >>> info = {1: 'string', False: 123, (11, 22): False,"k1":"v1","k2":"v2"} >>> info.popitem() ('k2', 'v2') >>> n,m = info.popitem() >>> print(n,m) k1 v1
  • setdefault:設(shè)置字典元素的value值。如果元素中有存在的Key,不做任何操作;如果元素中沒有對(duì)應(yīng)的key,則在字典中的最后添加一個(gè)元素,元素對(duì)應(yīng)的key:value,就是setdefault的2個(gè)參數(shù)

    >>> info = {1: 'string', False: 123, (11, 22): False,"k1":"v1","k2":"v2"} >>> info = {1: 'string', False: 123, (11, 22): False} >>> info.setdefault(1,"STR") 'string' >>> print(info) {1: 'string', False: 123, (11, 22): False} >>> info.setdefault("k1","value") 'value' >>> print(info) {1: 'string', False: 123, (11, 22): False, 'k1': 'value'}
  • update:更新字典元素對(duì)應(yīng)的value。如果key不存在的則直接添加這個(gè)key:value,如果存在,則修改這個(gè)key對(duì)應(yīng)的value值

    >>> info = {1: 'string', False: 123, (11, 22): False} >>> info.update({1:"new_str"}) >>> print(info) {1: 'new_str', False: 123, (11, 22): False}
  • values:獲取字典元素的value值

    >>> info = {1: 'string', False: 123, (11, 22): False} >>> print(info.values()) dict_values(['string', 123, False])
  • 可變數(shù)據(jù)類型和不可變數(shù)據(jù)類型

    根據(jù)對(duì)象元素的數(shù)值是否可被修改,可以將數(shù)據(jù)類型分為可變數(shù)據(jù)類型和不可變數(shù)據(jù)類型。到目前為止,不可變數(shù)據(jù)類型有:整型、字符串、元祖。可變數(shù)據(jù)類型有:列表、字典。可變數(shù)據(jù)類型是能夠被hash的。如果一個(gè)對(duì)象不能被hash的話,那么這個(gè)對(duì)象一定為可變數(shù)據(jù)類型。

    轉(zhuǎn)載于:https://www.cnblogs.com/hurst/p/10065134.html

    總結(jié)

    以上是生活随笔為你收集整理的Python数据类型——整型、布尔型、列表、元祖、字典的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。