一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python數據類型轉換詳解

Python數據類型轉換詳解

2022-02-21 00:15cheuklam Python

本篇文章里小編給大家整理的是關于Python中常用數據類型之間的轉換相關知識點,有需要的朋友們可以學習下,希望能夠給你帶來幫助

1. Python的數據類型

上一遍博文已經詳細地介紹了Python的數據類型,詳見鏈接Python的變量命名及數據類型。

在這里總結一下Python的數據類型:

  • 字符串類型 String
  • 數字類型 Number:

整形 int

浮點型 float

復數 complex

  • 布爾類型 Bool列
  • 表類型 List
  • 元組類型 Tuple
  • 字典類型 Dictionary
  • 集合類型 Set

可變數據類型:列表,字典,集合

不可變數據類型:字符串,數字類型,布爾類型,元組

容器類型數據:字符串,列表,元組,字典,集合

非容器類型數據:數字類型,布爾類型

2. Python數據類型轉換

由于不同的數據類型之間是不能進行運算的,所以我們需要數據類型轉換。Python中的數據類型轉換有兩種,一種是自動類型轉換,即Python在計算中會自動地將不同類型的數據轉換為同類型數據來進行計算;另一種是強制類型轉換,即需要我們基于不同的開發需求,強制地將一個數據類型轉換為另一個數據類型。

2.1 自動類型轉換

當兩個不同類型的數據進行運算時,結果會像更高精度進行計算,精度等級:布爾 < 整型 < 浮點型 < 復數。

?
1
2
3
4
5
6
7
8
9
10
11
12
a = 10
b = True
print(a + b) # 11
'''
在和數字運算時,True轉為1,False轉為0
'''
a = 10
b = 3.14
print(a + b) # 13.14
'''
整型與浮點型運算時,整型轉化為浮點型,結果也為浮點型
'''

2.2 強制類型轉換

  • str( ):可以把其他類型數據轉化為字符串類型
  • int( ):可以把其他類型數據轉化為整型
  • float( ):可以把其他類型數據轉化為浮點型
  • bool( ):可以把其他類型數據轉化為布爾類型
  • list( ):可以把其他類型數據轉化為列表類型
  • tuple( ):可以把其他類型數據轉化為元組類型
  • dict( ):可以把其他類型數據轉化為字典類型
  • set( ):可以把其他類型數據轉化為集合類型

2.2.1 其他轉字符串

所有類型都可以轉化為字符串類型。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
a = 123 # int
res = str(a)
print(res, type(res)) # 123 <class 'str'>
a = True # bool
res = str(a)
print(res, type(res)) # True <class 'str'>
a = [1, 2, 3] # list
res = str(a)
print(res, type(res)) # [1, 2, 3] <class 'str'>
a = (1, 2, 3) # tuple
res = str(a)
print(res, type(res)) # (1, 2, 3) <class 'str'>
a = {1, 2, 3} # set
res = str(a) # {1, 2, 3}
print(res, type(res)) # {1, 2, 3} <class 'str'>
a = {1: 'a', 2: 'b'} # dict
res = str(a)
print(res, type(res)) # {1: 'a', 2: 'b'} <class 'str'>

2.2.2 其他轉數字類型

數字類型之間可以相互轉換,但容器類型中只有字符串可以轉換為數字類型,并且字符串中的元素必須為純數字,否則無法轉換。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
'''
1. 數字類型之間相互轉換
'''
a = 123 # int
res = float(a)
print(res, type(res)) # 123.0 <class 'float'>
a = True # bool
res = float(a)
print(res, type(res)) # 1.0 <class 'float'>
 
'''
2. 字符串類型轉數字類型
'''
a = '123' # str
res = int(a)
print(res, type(res)) # 123 <class 'int'>
a = '123abc' # str
res = int(a)
print(res, type(res)) # 此時python會報錯,報錯類型為TypeError
a = [1, 2, 3] # list
res = int(a)
print(res, type(res)) # 此時同樣會報錯,因為除了字符串以外的其他容器類型都不可以轉換成數字類型

其他類型轉數字類型中有一個特殊情況,就是其他類型轉布爾類型。 bool( ) 可以把其他類型轉為True或False。

?
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
32
33
34
35
36
37
38
39
40
41
'''
1. 容器類型轉布爾類型:
   容器中為空 --> False
   容器中有元素 --> True
'''
a = '' # 空字符串
res = bool(a)
print(res, type(res)) # False <class 'bool'>
a = '0' # 字符串中有元素
res = bool(a)
print(res, type(res)) # True <class 'bool'>
a = [] # 空列表
res = bool(a)
print(res, type(res)) # False <class 'bool'>
a = [1, 2, 3] # 列表中有元素
res = bool(a)
print(res, type(res)) # True <class 'bool'>
a = tuple() # 空元組
res = bool(a)
print(res, type(res)) # False <class 'bool'>
a = dict() # 空字典
res = bool(a)
print(res, type(res)) # False <class 'bool'>
a = set() # 空集合
res = bool(a)
print(res, type(res)) # False <class 'bool'>
 
'''
2. 數字類型轉布爾類型:
   int類型中,0為False,其他為真
   float類型中,0.0為False,其他為真
'''
a = 0 # int
res = bool(a)
print(res, type(res)) # False <class 'bool'>
a = 0.0 # float
res = bool(a)
print(res, type(res)) # False <class 'bool'>
a = 0.345 # float
res = bool(a)
print(res, type(res)) # True <class 'bool'>

2.2.3 其他轉列表類型

1.數字類型是非容器類型,不能轉換為列表

2.字符串轉列表時,會把字符串中的每一個字符當作列表的元素

3.元組轉列表時,會把字符串中的每一個字符當作列表的元素

4.字典轉列表時,只保留字典中的鍵

5.集合轉列表時,結果是無序的,因為集合本身就是無序的

?
1
2
3
4
5
6
7
8
9
10
11
12
a = '123' # str
res = list(a)
print(res, type(res)) # ['1', '2', '3'] <class 'list'>
a = (1, 2, 3) # tuple
res = list(a)
print(res, type(res)) # ['1', '2', '3'] <class 'list'>
a = {'name': 'Alice', 'Age': 5, 'Sex': 'Female'} # dict
res = list(a)
print(res, type(res)) # ['name', 'Age, 'Sex'] <class 'list'>
a = {'a', 'b', 1, 2, 'c'} # set
res = print(a)
print(res, type(res)) # ['b', 2, 1, 'a', 'c'] <class 'list>

2.2.4 其他轉元組類型

其他類型數據轉元組類型與其他類型數據轉列表類型的規則相同。

?
1
2
3
4
5
6
7
8
9
10
11
12
a = 'abc' # str
res = tuple(a)
print(res, type(res)) # ('a', 'b', 'c') <class 'tuple>
a = [1, 2, 3] # list
res = tuple(a)
print(res, type(res)) # (1, 2, 3) <class 'tuple>
a = {'name': 'Alice', 'Age': 5, 'Sex': 'Female'} # dict
res = tuple(a)
print(res, type(res)) # ('name', 'Age, 'Sex') <class 'tuple>
a = {'a', 'b', 1, 2, 'c'} # set
res = tuple(a)
print(res, type(res)) # ('b', 2, 1, 'a', 'c') <class 'tuple>

2.2.5 其他轉集合類型

1.數字類型是非容器類型,不能轉換為集合

2.字符串轉集合時,結果是無序的

3.列表轉集合時,結果是無序的

4.元組轉集合時,結果是無序的

5.字典轉集合時,只保字典中的鍵,結果是無序的

?
1
2
3
4
5
6
7
8
9
10
11
12
a = '123' # str
res = set(a)
print(res, type(res)) # {'3', '2', '1'} <class 'set'>
a = ['a', 'b', 2, 1] # list
res = set(a)
print(res, type(res)) # {2, 1, 'b', 'a'} <class 'set'>
a = ('a', 'b', 2, 1) # tuple
res = set(a)
print(res, type(res)) # {2, 1, 'b', 'a'} <class 'set'>
a = {'name': 'Alice', 'Age': 5, 'Sex': 'Female'} # dict
res = set(a)
print(res, type(res)) # {'Age', 'name', 'Sex'} <class 'tuple>

2.2.6 其他轉字典類型

1.數字類型是非容器類型,不能轉換為字典

2.字符串不能轉字典類型,因為字符串不能生成二級容器

3.列表類型轉字典類型,列表必須為等長二級容器,子容器中的元素個數必須為2

4.元組類型轉字典類型,列表必須為等長二級容器,子容器中的元素個數必須為2集

5.合不能轉字典類型,因為集合不支持哈希

?
1
2
3
4
5
6
7
8
9
10
11
12
a = '123' # str
res = dict(a)
print(res, type(res)) # 此時python會報錯:ValueError: dictionary update sequence element #0 has length 1; 2 is required
a = [[1, 2], ['a','b']] # 等長二級列表
res = dict(a)
print(res, type(res)) # {1: 2, 'a': 'b'} <class 'dict'>
a = ((1, 2), (3, 4), (5, 6)) # 等長二級元組
res = dict(a)
print(res, type(res)) # {1: 2, 3: 4, 5: 6} <class 'tuple'>
a = {{1, 2}, {3, 4}} # 等長二級集合
res = dict(a)
print(res,type(res)) # 此時python會報錯:TypeError: unhashable type: 'set'

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注服務器之家的更多內容!

原文鏈接:https://blog.csdn.net/cheuklam/article/details/120555191

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产精品久久久久久久午夜片 | 我的年轻漂亮继坶三级 | 大团圆免费阅读全文 | 色猪视频| 精品免费tv久久久久久久 | 精品久久久久中文字幕日本 | 日本sss在线高清观看 | 四虎导航 | free service性v极品 | 黄+色+性+人免费 | sao虎影院桃红视频在线观看 | 亚洲、国产综合视频 | naruto tube18动漫 mm131亚洲精品久久 | 狠狠色伊人亚洲综合网站色 | 久久久久国产一级毛片高清片 | japanese秘书丝袜 | 国产免费午夜高清 | 51国产午夜精品免费视频 | 舔穴吸奶 | 成人18在线观看 | 国产小视频在线免费 | 丰满在线观看 | 成人伊在线影院 | 欧美穿高跟鞋做爰 | 欧美贵妇videos办公室 | 亚洲精品123区在线观看 | 男人狂擦女人的下面视频 | 暖暖 免费 高清 日本 在线1 | 亚洲国产美女精品久久久久 | 黄 在线播放 | 色婷婷综合久久久 | 动漫精品一区二区三区3d | 日本xxxxxxxxx59 | 动漫美女人物被黄漫小说 | 欧美老骚| 门房秦大爷在线阅读 | bdsm酷刑折磨死美女 | 深夜福利免费在线观看 | 91美女在线视频 | 欧美vpswindows| 免费观看一级特黄三大片视频 |