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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python-数据结构(一)

發布時間:2024/9/30 python 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python-数据结构(一) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、數字

整數

Python可以處理任意大小的整數,當然包括負整數,在程序中的表示方法和數學上的寫法一模一樣,例如:1,100,-8080,0,等等。

計算機由于使用二進制,所以,有時候用十六進制表示整數比較方便,十六進制用0x前綴和0-9,a-f表示,例如:0xff00,0xa5b4c3d2,等等。

浮點數

浮點數也就是小數,之所以稱為浮點數,是因為按照科學記數法表示時,一個浮點數的小數點位置是可變的,比如,1.23x109和12.3x108是完全相等的。浮點數可以用數學寫法,如1.23,3.14,-9.01,等等。但是對于很大或很小的浮點數,就必須用科學計數法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等等。

整數和浮點數在計算機內部存儲的方式是不同的,整數運算永遠是精確的(除法難道也是精確的?是的!),而浮點數運算則可能會有四舍五入的誤差。

常用方法:

  • int 將字符串轉化為數字
--------------------------------------------------------------------注:如果你對python感興趣,我這有個學習Python基地,里面有很多學習資料,感興趣的+Q群:895817687--------------------------------------------------------------------#!/usr/bin/env python# -*- coding:utf-8 -*-a = '123'print(type(a), a)a = int(a)print(type(a), a)#輸出 <class 'str'> 123 <class 'int'> 123

bit_length 當前數字的二進制至少用幾位表示

#!/usr/bin/env python# -*- coding:utf-8 -*-age = 10r = age.bit_length()print(r)#輸出4

二、字符串

1. 常用方法

  • capitalize 把字符串的第一個字符大寫
        mystr.capitalize()
  • casefold lower 轉換 mystr 中所有大寫字符為小寫 casefold可以識別特殊字符
        mystr.lower()
  • upper 轉換 mystr 中的小寫字母為大寫
        mystr.upper()
  • swapcase 大小寫切換
        mystr.swapcase()
test = 'sFHVahKHJss'v = test.swapcase()print(v)#輸出SfhvAHkhjSS
  • center 返回一個原字符串居中,并使用fillchar填充至長度 width 的新字符串
        mystr.center(width, fillchar=” ”)
  • count 返回str在start和end之間 在 mystr里面出現的次數
        mystr.count(str, start=0, end=len(mystr))
  • endswith 檢查字符串是否以obj結束,如果是返回True,否則返回 False.
        mystr.endswith(obj)
  • startswith 檢查字符串是否是以 obj 開頭, 是則返回 True,否則返回 False
        mystr.startswith(obj)
  • find 檢測str是否包含在 mystr中,如果包含返回開始的索引值,否則返回-1
        mystr.find(str, start=0, end=len(mystr))
  • index 跟find()方法一樣,只不過如果str不在 mystr中會報一個異常
        mystr.index(str, start=0, end=len(mystr))

format 字符串格式化

#!/usr/bin/env python# -*- coding:utf-8 -*-test = 'my name is {name},age is {age}'print(test)mstr = test.format(name='Tom', age=15)print(mstr)#輸出my name is {name},age is {age}my name is Tom,age is 15 # format的三種玩法res1 = '{} {} {}'.format('egon', 18, 'male')res2 = '{1} {0} {1}'.format('egon', 18, 'male')res3 = '{name} {age} {sex}'.format(sex='male', name='egon', age=18)print(res1)print(res2)print(res3)#輸出egon 18 male18 egon 18egon 18 male

format_map 類似于format,但傳入的參數是一個字典

#!/usr/bin/env python# -*- coding:utf-8 -*-test = 'my name is {name},age is {age}'print(test)mstr = test.format_map({"name":"Tom", "age":"15"})print(mstr)#輸出my name is {name},age is {age}my name is Tom,age is 15replace 把 mystr 中的 str1 替換成 str2,如果 count 指定,則替換不超過 count 次mystr.replace(str1, str2, mystr.count(str1)) name = 'alex say :i have one tesla,my name is alex'print(name.replace('alex', 'SB', 1))#輸出SB say :i have one tesla,my name is alex

split 以 str 為分隔符切片 mystr,如果 maxsplit有指定值,則僅分隔 maxsplit 個子字符串
    mystr.split(str=" ", maxsplit)

name = 'root:x:0:0::/root:/bin/bash'print(name.split(':')) # 默認分隔符為空格name = 'C:/a/b/c/d.txt' # 只想拿到頂級目錄print(name.split('/', 1))#輸出['root', 'x', '0', '0', '', '/root', '/bin/bash']['C:', 'a/b/c/d.txt']
  • rsplit 類似split,但從右邊開始
  • title 把字符串的每個單詞首字母大寫
        mystr.title()
  • ljust 返回一個原字符串左對齊,并使用fillchar填充至長度 width 的新字符串
        mystr.ljust(width, fillchar=” ”)
  • rjust 返回一個原字符串右對齊,并使用fillchar填充至長度 width 的新字符串
        mystr.rjust(width, fillchar=” ”)
  • zfill 返回指定長度的字符串,原字符串右對齊,前面填充0
        mystr.zfill(width)
  • lstrip 刪除 mystr 左邊的空白字符 也可以去除指定的字符
        mystr.lstrip()
#!/usr/bin/env python# -*- encoding:utf-8 -*-test = 'asdfghh'v = test.lstrip('8assdf') # 消除所有匹配到的字符print(v)#輸出ghh
  • rstrip 刪除 mystr 右邊的空白字符 也可以去除指定的字符
        mystr.rstrip()
  • strip 刪除mystr字符串兩端的空白字符 也可以去除指定的字符
        mystr.strip()
  • rfind 類似于 find()函數,不過是從右邊開始查找
        mystr.rfind(str, start=0,end=len(mystr) )
  • rindex 類似于 index(),不過是從右邊開始.
        mystr.rindex( str, start=0,end=len(mystr))
  • partition 把mystr以str分割成三部分,str前,str和str后
        mystr.partition(str)
test = 'ahjsyklsuiyska'v = test.partition('s')print(v)#輸出('ahj', 's', 'yklsuiyska')
  • rpartition 類似于 partition()函數,不過是從右邊開始.
        mystr.rpartition(str)
  • splitlines 按照行分隔,返回一個包含各行作為元素的列表
        mystr.splitlines()
test = 'ahjsykls\nuiyska\nvjshgk\ndhvgks'v1 = test.splitlines(True)print(v1)v2 = test.splitlines(False)print(v2)#輸出['ahjsykls\n', 'uiyska\n', 'vjshgk\n', 'dhvgks']['ahjsykls', 'uiyska', 'vjshgk', 'dhvgks']
  • isupper 判斷字符串否全是大寫字母
        mystr.isupper()
  • islower 判斷字符串否全是小寫字母
        mystr.islower()
  • isalpha 如果 mystr 所有字符都是字母 則返回 True,否則返回 False
        mystr.isalpha()
  • isdigit isdecimal isnumeric 如果 mystr 只包含數字則返回 True 否則返回
    False。isdigit可以判斷一些特殊字符例如②。 isnumeric可以判斷中文數字例如二。
        mystr.isdigit()
#!/usr/bin/env python# -*- encoding:utf-8 -*-test = '②'v1 = test.isdecimal()v2 = test.isdigit()print(v1, v2)#輸出False True test = '二'v1 = test.isdecimal()v2 = test.isdigit()v3 = test.isnumeric()print(v1, v2, v3)#輸出False False True
  • isalnum 如果 mystr 所有字符都是字母或數字則返回 True,否則返回 False
        mystr.isalnum()
  • isspace 如果 mystr 中只包含空格,則返回 True,否則返回 False
        mystr.isspace()
  • istitle 如果字符串的每個單詞的首字母都是大寫,則返回True,否則返回False
        mystr.istitle()
  • isprintable 判斷字符串是否能夠被打印
        mystr.isprintable()
test = '\n'v = test.isprintable()print(v)#輸出False
  • join 將字符串、元組、列表中的元素以mystr連接生成一個新的字符串
        mystr.join(str)
mystr = ' 'print(mystr.join(["haha", "hehe", "heihei"]))mystr = '-'print(mystr.join(["haha", "hehe", "heihei"]))# 運行結果:haha hehe heiheihaha-hehe-heihei
  • expandtabs 方法把字符串中的 tab 符號(’\t’)轉為空格,tab 符號(’\t’)默認的空格數是
    8。從頭開始數,數到第一個\t正好為8個空格,不足則補空格,如果還有\t,接著從第一個\t數到第二個\t仍然為8個空格,以此類推直到最后一個\t結束。
        S.expandtabs([tabsize=8])
#!/usr/bin/python3S = "this is\tstring example....wow!!!"print ("原始字符串: " + S)print ("替換 \\t 符號: " + S.expandtabs())print ("使用16個空格替換 \\t 符號: " + S.expandtabs(16))"""以上實例輸出結果如下:原始字符串: this is string example....wow!!!替換 \t 符號: this is string example....wow!!!使用16個空格替換 \t 符號: this is string example....wow!!!""" #!/usr/bin/env python#-*- encoding:utf-8 -*-S = "username\temail\tpassword\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123\nlaiying\tying@q.com\t123"v = S.expandtabs(20)print(v)

translate 替換字符串中指定的字符

test = 'ahjsykliuiyjka'm = str.maketrans('aeiou','12345')v = test.translate(m)print(v)#輸出1hjsykl353yjk1

重點:

1、strip,lstrip,rstrip

2、lower,upper

3、startswith,endswith

4、format的三種玩法

5、split,rsplit

6、join

7、replace

8、isdigit

2. 下標切片
字符串中"下標"的使用

字符串實際上就是字符的數組,所以支持下標索引。

如果有字符串:name = ‘abcdef’,在內存中的實際存儲如下:

如果想取出部分字符,那么可以通過下標的方法,(注意python中下標從 0 開始)

name = 'abcdef'print(name[0])print(name[1])print(name[2])運行結果:abc

切片

切片是指對操作的對象截取其中一部分的操作。

切片的語法:變量名[起始:結束:步長]

注意:選取的區間屬于左閉右開型,即從"起始"位開始,到"結束"位的前一位結束(包含起始位本身但不包含結束位本身)。結束位可以不寫,那么默認按照步長一直到末尾。

如果取出一部分,則可以在中括號[]中

示例1:name = 'abcdef'print(name[0:3]) # 取下標0~2 的字符運行結果:abc示例2:name = 'abcdef'print(name[2:]) # 取下標為2開始到最后的字符運行結果:cdef示例3:name = 'abcdef'print(name[len(name)-1]) # 取下標為字符長度-1的字符print(name[-1]) # 取下標為倒數第一個的字符運行結果:ff示例4:name = 'abcdef'print(name[1:-1]) # 取第2個到倒數第2個字符切片print(name[0::2]) # 從第一個字符開始每次步長為2取切片運行結果:bcdeace示例5:name = 'abcdef'print(name[-1:-5:-1]) # 逆向取倒數第一個到倒數第4個字符切片print(name[-1::-1]) # 逆向取倒數第一個到末尾的字符切片print(name[::-1]) # 倒序字符的切片運行結果:fedcfedcbafedcba

總結

以上是生活随笔為你收集整理的Python-数据结构(一)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。