1. 程式人生 > >L4.六.資料結構型別轉換md

L4.六.資料結構型別轉換md

(瞭解)資料結構型別轉換
===

## (常用)數字、字串轉換
int('1') → 1
float('2.5') → 2.5
str(1) → '1'


## (瞭解)列表、字典、元祖、字串

字典轉字串
student_dict = {'name':'小明','age':7,'sex':'male'}
str(student_dict)
"{'name': '小明', 'age': 7, 'sex': 'male'}"

列表轉字串
str([1,2,3])
'[1, 2, 3]'

元祖轉字串
str((1,2,3))
'(1, 2, 3)'

字典轉列表
list(student_dict) → ['name', 'age', 'sex']

字典轉元祖
tuple(student_dict)
('name', 'age', 'sex')

(常用) 列表元祖互轉
name_list = ['小明','小紅','小白']
tuple(name_list) → ('小明','小紅','小白')
name_tuple = ('小明','小紅','小白')
list(name_tuple) → ['小明','小紅','小白']


## zip()
假設你從資料庫或別人提供了兩個列表
第一個列表裡全是value 第二個列表全是key
要求返回前端{'name':'小明','age':7,'sex':'male'}

list1 = ['小明',7,'male']
list2 = ['姓名','年齡','性別']
普通方法來做的話
result = {}
for i in range(0,len(list1)):
result[list2[0]] = list1[0]
print(result)


zip方法 壓縮包方法
zip(鍵列表,值列表) 然後再dict轉型
dict(zip(list2,list1))
{'姓名': '小明', '年齡': 7, '性別': 'male'}


## (常用)eval 求..值
eval(字串) 吧字串當做python表示式來解釋執行
eval("print('hello')")
hello

eval('[1,2,3]')
[1, 2, 3]

攻擊: 使用者前臺表單輸入一段特殊字串,包含python程式碼,程式碼獲取磁碟資訊、修改檔案。eval()執行這段惡意字串就會導致安全問題,所以儘量少用eval()