【Python】Python 變量類型(變量賦值,數據類型,數據轉換)


目錄

Pythone變量類型

  變量賦值

  標准數據類型

    數據類型轉換

Python 變量類型

  變量存儲在內存中的值。這就意味着在創建變量時會在內存中開辟一個空間。基於變量的數據類型,解釋器會分配指定內存,並決定什么數據可以被存儲在內存中。因此,變量可以指定不同的數據類型,這些變量可以存儲整數,小數或字符。

變量賦值

  Python 中的變量賦值不需要類型聲明。每個變量在內存中創建,都包括變量的標識,名稱和數據這些信息。每個變量在使用前都必須賦值,變量賦值以后該變量才會被創建。等號(=)用來給變量賦值。等號(=)運算符左邊是一個變量名,等號(=)運算符右邊是存儲在變量中的值。

[root@tanbaobao myPy]# vi variable.py 
#!/usr/bin/python3.8
# -*- conding:UTF-8 -*-
name = "thy"
sex = 20;
weight = 100.0;

print(name)
print(sex)
print(weight)

[root@tanbaobao myPy]# python3.8 variable.py 
thy
20
100.0

  另外還有多個變量一起賦值(多變量賦值)。

# 創建一個整型對象,值為2,三個變量被分配到相同的內存空間上。
>>> a=b=c=2
>>> print a
2

# 兩個整型對象 1 和 2 分別分配給變量 a 和 b,字符串對象 "thy" 分配給變量 c。
>>> a,b,c=1,2,"thy"   
>>> print(a)
1
>>> print(b)
2
>>> print(c)
thy

標准數據類型

  Python 定義了一些標准類型,用於存儲各種類型的數據。

  Python有五個標准的數據類型:

1)數字類型用於存儲數值Numbers

  是不可改變的數據類型,這意味着改變數字數據類型會分配一個新的對象。當你指定一個值時,Number對象就會被創建。

  可以使用del語句刪除對象的引用

del var1[,var2[,var3[....,varN]]]]
# 刪除單個或多個
del var
del var_a, var_b

數字類型有四種:

  • int(有符號整型)
  • long(長整型[也可以代表八進制和十六進制])
  • float(浮點型)
  • complex(復數)

  • 長整型也可以使用小寫 l,建議使用大寫 L,避免與數字 1 混淆。Python使用 L 來顯示長整型。
  • Python 還支持復數,復數由實數部分和虛數部分構成,可以用 a + bj,或者 complex(a,b) 表示, 復數的實部 a 和虛部 b 都是浮點型。

PS:long 類型只存在於 Python2.X 版本中,在 2.2 以后的版本中,int 類型數據溢出后會自動轉為long類型。在 Python3.X 版本中 long 類型被移除,使用 int 替代。

2)字符串類型String

  字符串或串(String)是由數字、字母、下划線組成的一串字符。

s="a1a2···an"(n>=0)

python的字串列表有2種取值順序:

  • 從左到右索引默認0開始的,最大范圍是字符串長度少1
  • 從右到左索引默認-1開始的,最大范圍是字符串開頭

  如果你要實現從字符串中獲取一段子字符串的話,可以使用 [頭下標:尾下標] 來截取相應的字符串,其中下標是從 0 開始算起,可以是正數或負數,下標可以為空表示取到頭或尾[頭下標:尾下標] 獲取的子字符串包含頭下標的字符,但不包含尾下標的字符。

>>> s = 'abcdef'
>>> s[1:5]
'bcde'

上面的結果包含了 s[1] 的值 b,而取到的最大范圍不包括尾下標,就是 s[5] 的值 f。

加號(+)是字符串連接運算符,星號(*)是重復操作。

[root@tanbaobao myPy]# cat demo02.py 
#!/usr/bin/python3.8
# -*- conding:UTF-8 -*-
str = 'Hello World!'

print(str)
print(str[0])
print(str[2:5])
print(str[2:])
print(str[:-2])
print(str * 2)
print(str + "test")

[root@tanbaobao myPy]# python3.8 demo02.py 
Hello World!
H
llo
llo World!
Hello Worl
Hello World!Hello World!
Hello World!test
>>> str1 = 'hello tanbaobao'
>>> str1[:6]
'hello '
>>> str1[6]
't'
>>> str1[:6] + 'add' + str1[6:]
'hello addtanbaobao'

str()常用函數:

a)字符串處理字母的函數:

.upper()  #全部轉為大寫字母
.lower() #全部轉為小寫字母
.title()    #首字母大寫
.capitalize() #首字母大寫
.swapcase() #大小寫相互轉換
.lstrip() #去掉左邊的空格
.rstrip() # 刪除右邊,也就是末尾的空格
.strip([chars]) # 去掉左右兩邊的空格,中間的空格不作處理。默認不帶參數是去掉空格,如果帶參數,則去掉指定的chars
實例
# capitalize()將首字母轉換為大寫
>>> str2 = 'xiaoxiao'
>>> str2.capitalize()
'Xiaoxiao'

# casefold()將字符串轉換為小寫
>>> str2 = "DFNCDOSVNxncn"
>>> str2.casefold()
'dfncdosvnxncn'

# center(width)將字符串填充,使用空格來填充至長度width的新字符串
# ljust(width)左對齊,rjust(width)右對齊
>>> str2.center(20) ' DFNCDOSVNxncn ' # endswith(sub)檢查字符是否是以sub字符結束,如果是返回True,不是則返回False
# startswith(prefix[,start][,end])檢測是否以什么開始
>>> str2.endswith('c') False >>> KeyboardInterrupt >>> str2.endswith('n') True # expandtabs(tabsize=8)將字符中的\t符轉換為空格,不指定參數,默認空格數為8 >>> str3 = 'i\tlove\tanbaobao!' >>> str3.expandtabs() 'i love anbaobao!'

b)關於查找字符串相關的函數:

.find(sub,start[,end])  #查找指定的字符串,沒有則返回-1,找到會返回索引位置  ,find(sub,start,end)
.rfind(sub,start[,end]) #從字符串的右邊開始查找
.lfind(sub,start[,end]) # 從字符串左邊開始查找
.count() #獲取指定字符在該字符串中出現的次數
.index() #和find()功能類似,但是找不指定字符會報錯,而find()則會返回-1 (也有rindex,lindex)
find方法和index方法有三個參數, sub=想查找的字符,start=指定位置,end=結束位置
實例
# count(sub,start[,end])返回sub中重現的字符次數,start和end表示參數范圍
>>> str2.count('n')
2

# find(sub,start[,end])檢查sub是否包含在字符串中,如果有則返回索引值,沒有則返回-1
>>> str3.find('cr')
-1
>>> str3.find('ao')
10

# index(sub,start[,end])和find方法一樣,但是如果sub不在字符串內會報異常
>>> str3.index('b')
9
>>> str3.index('t')
Traceback (most recent call last):
  File "<pyshell#22>", line 1, in <module>
    str3.index('t')
ValueError: substring not found

c)與字符串判斷相關:

.isalnum()  #判斷字符串是否全部是數字或者字母
.isupper() #判斷是否全是大寫
.islower #判斷是否全是是小寫
.isalpha() #判斷是否全是字母
.isdecamal() #判斷字符串是都只包含十進制字符    定義一個十進制字符串,只需要在字符串前面加個“u”前綴即可
.isdigit() #判斷是否全部是數字
.isidentifier() #判斷變量名是否是python的標識符
.isspace() #判斷是否全是空格
.istitle() # 符合標題,首字母大寫,返回True,否則返回False

PS:返回是布爾類型

注意:

join():以字符串作為分隔,插入到sub中所有字符之間

>>> str4 = 'Tanbaobao'
>>> str4.join('123')
'1Tanbaobao2Tanbaobao3'

partition():找到子字符串sub,把字符分為3個元組(pre_sub,sub,fol_sub),如果字符串不包含sub則返回源字符串('原字符串','','')

>>> str6 = 'i love tanbaobao'
>>> str6.partition('ve')
('i lo', 've', ' tanbaobao')

replace(old,new[,count]):將舊字符串替換為新字符串

>>> str6.replace('i','I')
'I love tanbaobao'

split(sep=None,maxsplit=-1):不帶參數默認以空格為分隔符切片字符串,如果maxsplit有設置則僅分隔maxsplit個子字符串,返回切片后的子字符串拼接列表

>>> str6
'i love tanbaobao'
# 默認按空格切
>>> str6.split()
['i', 'love', 'tanbaobao']
# 按i切,將i去除了
>>> str6.split('i')
['', ' love tanbaobao']
# 按a來切,a去除
>>> str6.split('a')
['i love t', 'nb', 'ob', 'o']

translate(table):根據table的規則(可以由str.maketrans('a','b')定制),轉換字符串中的字符

>>> str7
'      aaaassss   ddff'
# 將s轉換為b
>>> str7.translate(str.maketrans('s','b'))
'      aaaabbbb   ddff'
# 輸出的是ASCII編碼
>>> str.maketrans('s','b')
{115: 98}

zfill(width):返回長度為width的字符串,原字符串右對齊,前邊用0填充

>>> str3.zfill(30)
'00000000000000i\tlove\tanbaobao!'

字符串格式化

a)位置參數

>>> "{0} love {1}.{2}".format("I","Love","tanbaobao")
'I love Love.tanbaobao'

b)關鍵字參數

>>> "{a} love {b}.{c}".format(a="I",b="Love",c="tanbaobao")
'I love Love.tanbaobao'

c)將位置、關鍵字參數綜合使用(位置參數一定要在關鍵字參數之前)

>>> "{0} love {b}.{c}".format("I",b="Love",c="tanbaobao")
'I love Love.tanbaobao'

d)格式化符號意義

>>> "{{0}}".format("a")
'{0}'
>>> "{{0}}".format("不打印")
'{0}'
# .1f保留1位小數,f表示四舍五入
>>> '{0:.1f}{1}'.format(22.222,'GB')
'22.2GB'
>>> '{0:.1f}{1}'.format(22.252,'GB')
'22.3GB'
實例
# 格式化字符
>>> '%c' %97
'a'
>>> '%c %c %c' %(97,98,99)
'a b c'
# 格式化字符串
>>> '%s' % 'i love tanbaobao'
'i love tanbaobao'
# 格式化整數
>>> '%d + %d = %d' % (4,5,4+5)
'4 + 5 = 9'

e)格式化操作輔助命令

# m總長度,n保留多少位
>>> '%5.1f' % 22.222
' 22.2'
>>> '%.2e' % 22.222
'2.22e+01'
>>> '%10d' % 5
'         5'
# 左邊對齊
>>> '%-10d' % 5
'5         '
>>> '%+10d' % 5
# 右邊對齊
'        +5'
>>> '%+10d' % +5
'        +5'
>>> '%+10d' % -5
'        -5'

f)字符串轉義字符

3)Python列表list  

  List(列表) 是 Python 中使用最頻繁的數據類型。列表可以完成大多數集合類的數據結構實現。它支持字符,數字,字符串甚至可以包含列表(即嵌套)。

  列表用 [ ] 標識,是 python 最通用的復合數據類型。列表中值的切割也可以用到變量 [頭下標:尾下標] ,就可以截取相應的列表,從左到右索引默認 0 開始,從右到左索引默認 -1 開始,下標可以為空表示取到頭或尾。

加號 + 是列表連接運算符,星號 * 是重復操作。和字符串的類似。

實例1
[root@tanbaobao myPy]# vi demo03.py 
#!/usr/bin/python3.8
# -*- conding:UTF-8 -*-
list = ['Hello',20,155.50,'thy',100.5]
addlist = ['123','thy']

print(list)
print(list[0])
print(list[1:3])
print(list[2:])    # 輸出第三個及后面所有
print(list[:-2])    # 從左邊開始打印,不包括結尾索引-2(也就是到結尾-2索引截止)
print(list[-2:])    # 從右邊開始打印,包括開始索引-2
print(addlist * 2)    # 輸出addlist兩次
print(list + addlist)    # 打印組合列表

[root@tanbaobao myPy]# python3.8 demo03.py 
['Hello', 20, 155.5, 'thy', 100.5]
Hello
[20, 155.5]
[155.5, 'thy', 100.5]
['Hello', 20, 155.5]
['thy', 100.5]
['123', 'thy', '123', 'thy']
['Hello', 20, 155.5, 'thy', 100.5, '123', 'thy']    
實例2
>>> member = ['thy','譚寶寶',3.1415926,[1,3,5]]
>>> member
['thy', '譚寶寶', 3.1415926, [1, 3, 5]]
>>> member.append('zs')
>>> member
['thy', '譚寶寶', 3.1415926, [1, 3, 5], 'zs']
>>> len(member)
5

向列表添加元素:append(),extend(),insert()

a)append():一次只能添加一個元素,添加一個以上的元素會報錯

b)extend():一個列表來擴展一個列表。需要注意格式要用[]列表的標識符括起來

c)insert():在指定位置插入元素,索引從0開始

從列表中獲取元素單個():通過索引值來獲取對應的元素,列表索引值都是從0開始

實例3
# 一個簡單的數據交換
>>> member
['thy', '譚醬', '譚寶寶', 3.1415926, [1, 3, 5], 'zs', 'xw', 'zl']
>>> member[0]
'thy'
>>> member[1]
'譚醬'
>>> temp = member[0]
>>> member[0] = member[1]
>>> member
['譚醬', '譚醬', '譚寶寶', 3.1415926, [1, 3, 5], 'zs', 'xw', 'zl']
>>> member[1] = temp
>>> member
['譚醬', 'thy', '譚寶寶', 3.1415926, [1, 3, 5], 'zs', 'xw', 'zl']

從列表刪除元素:remove(),del(),pop():

a)remove():前提是知道要移除的元素在列表中有存在:

>>> member
['譚醬', 'thy', '譚寶寶', 3.1415926, [1, 3, 5], 'zs', 'xw', 'zl']
>>> member.remove(3.1415926)
>>> member
['譚醬', 'thy', '譚寶寶', [1, 3, 5], 'zs', 'xw', 'zl']

# 如果不存在,會報錯
>>> member.remove(2.1415926)
Traceback (most recent call last):
  File "<pyshell#21>", line 1, in <module>
    member.remove(2.1415926)
ValueError: list.remove(x): x not in list

b)del()語句:del不是方法,是一個語句:

# del后面直接跟member對象,會直接將member列表才能夠內存中刪除
>>> member
['譚醬', 'thy', '譚寶寶', [1, 3, 5], 'zs', 'xw', 'zl']
>>> del member[3]
>>> member
['譚醬', 'thy', '譚寶寶', 'zs', 'xw', 'zl']

c)pop():從列表中取出元素並返回給你,默認從最后一個元素刪除,如果要指定刪除元素,在pop()中指定參數索引

# 默認從元素最后一個刪除,每次只刪除一個元素
>>> member
['譚醬', 'thy', '譚寶寶', 'zs', 'xw', 'zl']
>>> member.pop()
'zl'
>>> member
['譚醬', 'thy', '譚寶寶', 'zs', 'xw']
# 賦值刪除
>>> name = member.pop()
>>> name
'xw'
# 指定索引刪除
>>> member.pop(1)
'thy'
>>> member
['譚醬', '譚寶寶', 'zs']

列表切片(分片slice):可以一次獲取多個元素

# member[0:2]左邊數包括,右邊的數不包括在內
>>> member
['譚醬', '譚寶寶', 'zs', 'thy']
>>> member[0:2]
['譚醬', '譚寶寶']

# 獲取索引3簽名的所有數
>>> member[:3]
['譚醬', '譚寶寶', 'zs']

# 獲取索引1后面的所有數
>>> member[1:]
['譚寶寶', 'zs', 'thy']

# 相當於拷貝列表
>>> member[:]
['譚醬', '譚寶寶', 'zs', 'thy']
或
>>> member2 = member[:]
>>> member2
['譚醬', '譚寶寶', 'zs', 'thy']

列表操作符:列表盡量不使用+號添加元素,最好使用extend()方法來添加

# 單個元素比較
 >>> a = [123]
>>> b = [234]
>>> a > b
False

# 多個元素比較(只要第一個元素比另一個列表的第一個元素大,就不會再比較后面的元素)
>>> list = [123,456]
>>> list2 = [234,123]
>>> list > list2
False

# 用and進行比較,在上面的基礎,添加list3
>>> list3 = [123,456]
>>> (list < list2) and (list == list3)
True

# 拼接字符 +。類似列表的extend()擴展列表方法。
# +號兩邊的類型必須一致 
>>> list4 = list + list2
>>> list4
[123, 456, 234, 123]

# *號
>>> list3 * 3
[123, 456, 123, 456, 123, 456]
>>> list3 *= 5
>>> list3
[123, 456, 123, 456, 123, 456, 123, 456, 123, 456]

# in包含和not in不包含
>>> 123 in list3
True
>>> 241 in list3
False
>>> 241 not in list3
True
# 只能判斷列表中的元素,如果要判斷列表中列表的元素還需要進行其他操作指定列表的索引
>>> list5 = [123,['譚寶寶','譚醬'],456]
>>> '譚醬' in list5
False
>>> '譚醬' in list5[1]
True

# 對於列表中列表的值的訪問,相當於二元數組的操作
>>> list5[1][1]
'譚醬'

列表的內置函數:

>>> list3
[123, 456, 123, 456, 123, 456, 123, 456, 123, 456]
# 查看列表中元素出現的次數
>>> list3.count(123)
5
# 查看指定元素在指定索引內出現的位置,其中第二個參數表示開始索引,第三個參數表示結束索引
>>> list3.index(123)
0
>>> list3.index(123,3,7)
4
# 逆序輸出reverse
>>> list3.reverse();
>>> list3
[456, 123, 456, 123, 456, 123, 456, 123, 456, 123]

# 排序sort(從小到大),使用sort從小到大之后可以使用reverse從大到小排序哈
>>> list6 = [1,3,5,1,2,3,6,8,2]
>>> list6.sort()
>>> list6
[1, 1, 2, 2, 3, 3, 5, 6, 8]

# sort帶參數sort(reverse=True),從大到小,默認是False,從小到大
>>> list6.sort(reverse=True)
>>> list6
[8, 6, 5, 3, 3, 2, 2, 1, 1]
>>> list6.sort(reverse=False)
>>> list6
[1, 1, 2, 2, 3, 3, 5, 6, 8]

# 另外如果將list6賦值給list7,然后將list6進行排序,會改變兩個列表的順序,如果加上切片方式進行拷貝,則不會修改兩個列表的值,只會修改指定排序的列表值
# 即使用=號只是多添加一個標簽,使用切片進行的拷貝,會開辟一個內存
>>> list6
[1, 1, 2, 2, 3, 3, 5, 6, 8]
>>> list7 = list6
>>> list7
[1, 1, 2, 2, 3, 3, 5, 6, 8]
>>> list8 = list6[:]
>>> list8
[1, 1, 2, 2, 3, 3, 5, 6, 8]
>>> list6.sort(reverse=True)
>>> list6
[8, 6, 5, 3, 3, 2, 2, 1, 1]
>>> list7
[8, 6, 5, 3, 3, 2, 2, 1, 1]
>>> list8
[1, 1, 2, 2, 3, 3, 5, 6, 8]

實例
>>> a = list()
>>> a
[]
# 將字符串轉換為列表
>>> b = 'i love tanbaobao'
>>> b = list(b)
>>> b
['i', ' ', 'l', 'o', 'v', 'e', ' ', 't', 'a', 'n', 'b', 'a', 'o', 'b', 'a', 'o']
# 將元組轉換為列表
>>> c = (1,22,33,11,56)
>>> c =  list(c)
>>> c
[1, 22, 33, 11, 56]
# 返回長度
>>> len(b)
16
>>> b
['i', ' ', 'l', 'o', 'v', 'e', ' ', 't', 'a', 'n', 'b', 'a', 'o', 'b', 'a', 'o']
>>> max(b)
'v'
# 返回最大值(數據類型需要一致)
>>> max(c)
56
# 返回序列或參數集合中的最小值(數據類型需要一致)
>>> min(c)
1
# sum(iterable[,start=0]):返回序列iterable和可選參數start總和。也需要同類型
>>> tuple2 = (3.2,3.1,3.4
>>> dum(tuple2)
>>> sum(tuple2)
9.700000000000001

 

4)Python 元組

  元組是另一個數據類型,類似於 List(列表)。元組用 () 標識。內部元素用逗號隔開。但是元組不能二次賦值,相當於只讀列表列表可以二次賦值

實例
[root@tanbaobao myPy]# cat demo04.py 
#!/usr/bin/python3.8
# -*- conding:UTF-8 -*-
tuple = ('Hello',20,155.50,'thy',100.5)
addtuple = ('123','thy')

print(tuple)
print(tuple[0])
print(tuple[1:3])
print(tuple[2:])
print(tuple[:-2])
print(tuple[-2:])
print(addtuple * 2)
print(tuple + addtuple)

[root@tanbaobao myPy]# python3.8 demo04.py 
('Hello', 20, 155.5, 'thy', 100.5)
Hello
(20, 155.5)
(155.5, 'thy', 100.5)
('Hello', 20, 155.5)
('thy', 100.5)
('123', 'thy', '123', 'thy')
('Hello', 20, 155.5, 'thy', 100.5, '123', 'thy')

這里講下元組和列表的不同:

區分元組不能僅僅看()來識別,“,”逗號才是關鍵,如:

創建空列表,和空元組:

>>> temp = []
>>> type(temp)
<class 'list'>
>>> temp =()
>>> type(temp)
<class 'tuple'>

注意*號操作:

>>> 8 * (1)
8
>>> 8 * (1,)
(1, 1, 1, 1, 1, 1, 1, 1)

# 列表
>>> 8 * [1]
[1, 1, 1, 1, 1, 1, 1, 1]
# 可以通過以下這種方法進行添加元素
>>> temp1 = ('譚醬', '譚寶寶', '', '周小獅')
>>> temp1 = temp1[:2] + ('小林',) + temp1[2:]
>>> temp1
('譚醬', '譚寶寶', '小林', '', '周小獅')

不能用del語句來刪除元組,機制會在過段時間來清理一些沒有被指定的標簽。

5)Python 字典(屬於映射類型)

  字典(dictionary)是除列表以外python之中最靈活的內置數據結構類型。列表是有序的對象集合,字典是無序的對象集合。

  兩者之間的區別在於:字典當中的元素是通過鍵來存取的,而不是通過偏移存取。字典用"{ }"標識。字典由索引(key)和它對應的值value組成。

實例demo05.py
[root@tanbaobao myPy]# vi demo05.py 
#!/usr/bin/python3.8
# -*- conding:UTF-8 -*-
dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
adddict = {'name':'thy','age':'20','sex':''}

print(dict['one'])
print(dict[2])
print(adddict)
print(adddict.keys())
print(adddict.values())

[root@tanbaobao myPy]# python3.8 demo05.py 
This is one
This is two
{'name': 'thy', 'age': '20', 'sex': ''}
dict_keys(['name', 'age', 'sex'])
dict_values(['thy', '20', ''])

創建和訪問字典:

>>> brand = ['李寧', '耐克', '阿迪達斯', '譚醬']
>>> slogan = ['Impossible is nothing', 'Just do it', 'Let\'s go', 'OK']
>>> slogan
['Impossible is nothing', 'Just do it', "Let's go", 'OK']
>>> print('譚醬:', slogan[brand.index('阿迪達斯')])
譚醬: Let's go
>>> 
>>> dict = {'李寧':'Impossible is nothing', '耐克':'Just do it', '阿迪達斯':'Let\'s go', '譚醬':'OK'}
>>> print('譚醬:', dict['譚醬'])
譚醬: OK
>>> 

由於之前定義了dict變量,當我后面調用dict函數時回報錯誤:

解決:將之前定義的dict變量刪除:del(dict)

fromkeys()創建新的字典

  以序列 seq 中元素做字典的鍵,value 為字典所有鍵對應的初始值。

語法

dict.fromkeys(seq[, value])

實例:

>>> dict1 = {}
>>> dict1.fromkeys((1,2,3))
{1: None, 2: None, 3: None}

>>> dict1.fromkeys((1,2,3),'an')
{1: 'an', 2: 'an', 3: 'an'}

# 如果是向修改值,可能並不是修改,而是直接賦值了
>>> dict1.fromkeys((1, 3), '數字')
{1: '數字', 3: '數字'}

獲取字典的鍵,值,鍵值對:

# 定義32個字典元素
>>> dict1 = dict1.fromkeys(range(32), '')
>>> dict1
{0: '', 1: '', 2: '', 3: '', 4: '', 5: '', 6: '', 7: '', 8: '', 9: '', 10: '', 11: '', 12: '', 13: '', 14: '', 15: '', 16: '', 17: '', 18: '', 19: '', 20: '', 21: '', 22: '', 23: '', 24: '', 25: '', 26: '', 27: '', 28: '', 29: '', 30: '', 31: ''}

# for遍歷獲取鍵,值,鍵值對,這里的end=" "是不換行輸出,""雙引號之間的字符是以什么換行,我這里是以空格
>>> for eachKey in dict1.keys():
    print (eachKey, end=" ")

    
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
>>> for eachValue in dict1.values():
    print (eachValue, end=" ")

    
贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 贊 
>>> for eachItem in dict1.items():
    print (eachItem, end=" ")

    
(0, '') (1, '') (2, '') (3, '') (4, '') (5, '') (6, '') (7, '') (8, '') (9, '') (10, '') (11, '') (12, '') (13, '') (14, '') (15, '') (16, '') (17, '') (18, '') (19, '') (20, '') (21, '') (22, '') (23, '') (24, '') (25, '') (26, '') (27, '') (28, '') (29, '') (30, '') (31, '') 

PS:使用in可以查詢字典中是否包含這個元素(get(索引,設置沒有包含或包含的提示信息)也可以)

清空字典使用clear()方法:

拷貝copy()方法:

直接賦值只是添加了一個標簽,改變原來的字典內容,c也會跟着改變,但是b的內容不會改變

更新update()方法:

  從另一個字典更新當前字典

>>> a
{'1': 'one', '': None}
>>> b = {'nihao':'ncsn'}
>>> a.update(b)
>>> a
{'1': 'one', '': None, 'nihao': 'ncsn'}

補充:集合

  以花括號標識但是沒有映射關系的是集合。

 

 

集合中的元素是唯一的,且會自動從小到大排序顯示

創建集合的方法有兩種:

1)直接把一堆元素使用{}花括號括起來,如上面所示

2)使用set()工廠函數,set()中可以傳入字符,元組,列表類型。如下所示:

實例:去除列表中重復的元素

 

# 沒有學集合之前,普通方法
>>> num1 = [1,2,3,4,5,5,3,1,0]
>>> temp = []
>>> for each in num1:
    if each not in temp:
        temp.append(each)

        
>>> temp
[1, 2, 3, 4, 5, 0]

# 學了集合之后處理的方法
>>> num1 = list(set(num1))
>>> num1
[0, 1, 2, 3, 4, 5]

 

訪問集合中的值:

1)使用for把集合中的元素一個一個讀取出來

2)使用in和not in判斷一個元素是否在集合中已經存在

不可變集合:

 

>>> num3 = frozenset([1,2,3,4,5])
>>> num3
frozenset({1, 2, 3, 4, 5})

 

 

Python數據類型轉換

  有時候,我們需要對數據內置的類型進行轉換,數據類型的轉換,你只需要將數據類型作為函數名即可。以下幾個內置的函數可以執行數據類型之間的轉換。這些函數返回一個新的對象,表示轉換的值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM