數(shù)據(jù)類型轉化
int兼贡、float穷当、str可以相互轉化
In [1]: str(1)
Out[1]: '1'
In [2]: int('1')
Out[2]: 1
In [3]: float('1')
Out[3]: 1.0
# int關鍵字不能轉為數(shù)字的字符串
In [4]: int("s")
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-4-61f7ab14298a> in <module>()
----> 1 int("s")
ValueError: invalid literal for int() with base 10: 's'
str灿巧、list、tuple、set可以相互轉化
# 字符串與列相互轉化需要使用高級方法(顯示轉化)
In [6]: '1,2,3,4,5'.split(',')
Out[6]: ['1', '2', '3', '4', '5']
In [7]: ','.join(['1', '2', '3', '4', '5'])
Out[7]: '1,2,3,4,5'
# 數(shù)字類型不能直接轉化為字符串
In [8]: ','.join([1, 2, 3, 4, 5])
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-8-16dd7015be3c> in <module>()
----> 1 ','.join([1, 2, 3, 4, 5])
TypeError: sequence item 0: expected str instance, int found
# list疚察、tuple、set之間可以相互進行轉化
In [9]: l = [1, 2, 3, 4, 5]
In [10]: tuple(l)
Out[10]: (1, 2, 3, 4, 5)
In [11]: set(l)
Out[11]: {1, 2, 3, 4, 5}
以下幾個內(nèi)置的函數(shù)可以執(zhí)行數(shù)據(jù)類型之間的轉換。這些函數(shù)返回一個新的對象,表示轉換的值招驴。Python Number 類型轉換
關鍵字 | 說明 |
---|---|
int(x [,base ]) | 將 x 轉換為一個整數(shù) |
float(x ) | 將 x 轉換到一個浮點數(shù) |
str(x ) | 將對象 x 轉換為字符串 |
tuple(s ) | 將序列 s 轉換為一個元組 |
list(s ) | 將序列 s 轉換為一個列表 |
set(s ) | 將序列 s 轉換為一個集合 |
序列解包
可以使用序列解包功能對多個變量同時賦值
>>> x, y, z = 1, 2, 3 #多個變量同時賦值
>>> t = (False, 3.5, 'exp')
>>> (x, y, z) = t
>>> x, y, z = t
>>> x, y, z = range(3) #可以對range對象進行序列解包
>>> a, b = b, a #交換兩個變量的值
>>> a, b, c = 'ABC' #字符串也支持序列解包
>>> x = [1, 2, 3, 4, 5, 6]
>>> x[:3] = map(str, range(5)) #切片也支持序列解包
>>> x
['0', '1', '2', '3', '4', 4, 5, 6]
- 序列解包對于列表和字典同樣有效
>>> s = {'a':1, 'b':2, 'c':3}
>>> b, c, d = s.items()
>>> b
('c', 3)
>>> b, c, d = s #使用字典時不用太多考慮元素的順序
>>> b
'c'
>>> b, c, d = s.values()
>>> print(b, c, d)
1 3 2
- 序列解包遍歷多個序列
>>> keys = ['a', 'b', 'c', 'd']
>>> values = [1, 2, 3, 4]
>>> for k, v in zip(keys, values):
print((k, v), end=' ')
('a', 1) ('b', 2) ('c', 3) ('d', 4)
- Python 3.5還支持下面用法的序列解包
>>> print(*[1, 2, 3], 4, *(5, 6))
1 2 3 4 5 6
>>> *range(4),4
(0, 1, 2, 3, 4)
>>> [*range(10)]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> {'x': 1, **{'y': 2}}
{'y': 2, 'x': 1}