Python數據類型應用大全

目錄

前言

各類型相互轉換

數值轉字符串---字符串轉元組---字符串轉列表---字符串轉字典

注意

數值(int,float)

類型強制轉換

字符串(string)

內置函數

切片

遍歷方式

元組(tuple)

內置函數

字符串創造元組

元組的元素不可變性,用的不多,暫時想到只有這個 

列表(list)

字符串創造列表

遍歷方式

切片

雙重列表去重

列表各位互乘

列表各位求和

字典 (dict)

字典遍歷

字典增刪改查

根據value獲得key的值 || 根據key獲得value的值

json操作

內置函數


前言

本篇將記載python日常生活中用到的各種數據類型的操作,比較難一點的,容易用錯的,有些來源於各大博客,有些自己日常弄出來的,簡單常用的就不寫了,有問題或者有意見的聯繫我添加,持續更新,想到或者用到就更。

各類型相互轉換

數值轉字符串---字符串轉元組---字符串轉列表---字符串轉字典

a=2
b=str(a)
c=tuple(b)
d=list(b)
e='{"a":"1", "b":"1"}'
e=json.loads(e)
print('源類型:'+str(type(a)),a)
print('轉換後類型:'+str(type(b)),b)
print('轉換後類型:'+str(type(c)),c)
print('轉換後類型:'+str(type(d)),d)
print('轉換後類型:'+str(type(e)),e)

>>>
原類型:<class 'int'> 2
轉換後類型:<class 'str'> 2
轉換後類型:<class 'tuple'> ('2',)
轉換後類型:<class 'list'> ['2']
轉換後類型:<class 'dict'> {'a': '1', 'b': '1'}

注意

  • 數值轉tuple或者list時只能先轉爲字符串再進行轉換,但是如此一來兩位數以上的數值將變成一位一位,解決辦法,直接列表添加。
a=12
b=list(str(a))
print(b)
#輸出 ['1', '2']

c=[]
c.append(a)
print(c)
#輸出  [12]
  • 字符串轉字典類型只能採用json模塊的losds進行轉換,字符串格式還得是字典格式

數值(int,float)

類型強制轉換

a=12
a=float(a)
b=int(a)
print(a)
#輸出 12.0

print(b)
#輸出 12

字符串(string)

內置函數

strs='cxk'

# 字母處理:
strs.upper()    # 全部大寫
strs.lower()    # 全部小寫
strs.swapcase()    # 大小寫互換,字符串中小寫字母變大寫,大寫變小寫
strs.capitalize()    # 首字母大寫,其餘小寫
strs.title()    # 首字母大寫

# 字符串搜索相關
strs.find('指定字符')    # 搜索指定字符串,沒有返回-1
strs.index('指定字符')    # 同上,但是找不到會報錯
strs.rfind('指定字符')    # 從右邊開始查找
strs.count('指定字符')    # 統計指定的字符串出現的次數

# 字符串替換
strs.replace('舊字符','新字符')    # 替換old爲new
strs.replace('舊字符','新字符',次數)    # 替換指定次數的old爲new

# 字符串去空格及去指定字符
strs.strip()    # 去兩邊空格
strs.lstrip()    # 去左邊空格
strs.rstrip()    # 去右邊空格

strs.split()    # 默認按空格分隔
strs.split('指定字符')    # 按指定字符分割字符串爲數組

strs.startswith('cxk')    # 是否以cxk開頭
strs.endswith('cxk')    # 是否以cxk結尾
strs.isalnum()    # 是否全爲字母或數字
strs.isalpha()    # 是否全字母
strs.isdigit()    # 是否全數字
strs.islower()    # 是否全小寫
strs.isupper()    # 是否全大寫
strs.istitle()    # 判斷首字母是否爲大寫
strs.isspace()    # 判斷字符是否爲空格

切片

a='1234'
#反轉
print(a[::-1])
#輸出 4321

#切去最後一位
print(a[:-1])
#輸出 123

#切去第一位
print(a[1:])
#輸出 234

#按下標切 [start:end] 注意 end是開口的 意思是截取到的是end-1位
print(a[1:3])
#輸出 23

遍歷方式

a='1234'
#直接遍歷
for i in a:
    print(i)
#輸出 
1
2
3
4

#下標遍歷
for i in range(len(a)):
    print(a[i])
#輸出
1
2
3
4

元組(tuple)

內置函數

#obj統計對象 返回元素在列表中出現的次數。
list.count(obj)

#obj添加對象 添加到列表末尾的對象。
list.append(obj)

#seq:元素列表,可以是列表、元組、集合、字典;若爲字典,則僅會將鍵作爲元素依次添加至原列表的末尾。
list.extend(seq)

#obj:查找的對象
list.index(obj)

#index: 對象obj需要插入的索引位置。obj: 要插入列表中的對象。
list.insert(index, obj)


#index: 可選參數,要移除列表元素的索引值,不能超過列表總長度,默認爲 index=-1,刪除最後一個列表值。
list.pop(index=-1)

#obj :列表中要移除的對象。
list.remove(obj)

#會對列表的元素進行反向排序。
list.reverse()參數:

字符串創造元組

a='1234'
#遍歷創造 可直接每位進行強制轉換加減乘除操作
b=tuple((int(i)*2 for i in a))
#直接轉換
c=tuple(a)
print(b)
print(c)

(2, 4, 6, 8)
('1', '2', '3', '4')

元組的元素不可變性,用的不多,暫時想到只有這個 

列表(list)

字符串創造列表

a='1234'
#遍歷創造 可直接每位進行強制轉換加減乘除操作
b=[int(i)*2 for i in a]
#直接轉換
c=list(a)
print(b)
print(c)

[2, 4, 6, 8]
['1', '2', '3', '4']

遍歷方式

#列表遍歷直接跟下標遍歷兩種方式
#直接遍歷
a=[1,2,3]
for i in a:
    print(i)
#輸出
1
2
3

#下標遍歷
for i,value in enumerate(a):
     print(i,value) 
#輸出
0 1
1 2
2 3

for i in range(len(a)):
    print(i,a[i])
#輸出
0 1
1 2
2 3

切片

a=[1,2,3,4]
#反轉
print(a[::-1])
#輸出[4, 3, 2, 1]

#切去最後一位
print(a[:-1])
#輸出[1, 2, 3]

#切去第一位
print(a[1:])
#輸出[2, 3, 4]

#按下標切 [start:end] 注意 end是開口的 意思是截取到的是end-1位
print(a[1:3])
#輸出[2, 3]

#由輸出可以看到切片並未改變原來的值,只是進行了新的複製

雙重列表去重

f=[[1,1,1],[1,1,1],[1,2,1],[1,2],[1,2,1]]
f=[list(i) for i in set(tuple(j) for j in f)]
print(f)
#輸出[[1, 2], [1, 2, 1], [1, 1, 1]]

列表各位互乘

from functools import reduce
reduce(lambda x,y:x*y,[2,2,2])
#輸出 8

列表各位求和

a=[1,1,1,1]
sum(a)
#輸出 4

字典 (dict)

字符串轉字典

import ast
a="{1:2,2:3}"
print(type(a))
a=ast.literal_eval(a)
print(type(a))
print(a)

<class 'str'>
<class 'dict'>
{1: 2, 2: 3}

字典遍歷

a={'a':1,'b':2}
#遍歷key
for key in a.keys():
    print(key)
#輸出
a
b

#遍歷value
for value in a.values():
    print(value)
#輸出
1
2

#兩者一起遍歷
for key,value in a.items():
    print('{%s:%s}'%(key,value))
#輸出
{a:1}
{b:2}

字典增刪改查

#字典添加
a={}
print(a)
#輸出  {}

a['a']=1
print(a)
#輸出 {'a': 1}

#根據key修改value的值
a['a']=2
print(a)
#輸出 {'a': 2}

#將key跟value反轉,就是key變成value,value變成key,暫時想到的辦法
b={}
for key,value in a.items():
    b[value]=key
print(b)
#輸出 {2: 'a'}

#將兩個長度一樣的列表轉爲一個key,一個value
# 第一種
a=[1,2,3]
b=['a','b','c']
c={a[i]:b[i] for i in range(len(a))}
print(c)
#{1: 'a', 2: 'b', 3: 'c'}

# 第二種
dict(zip(a,b))
#輸出
#{1: 'a', 2: 'b', 3: 'c'}

#第三種
dict([('a',1),('b',2)])
#輸出
#{'a': 1, 'b': 2}

例同第三種
# 字典推導式
a = [('name','zhangsan'),('age','11'),('phone','a')]
d = {key: value for (key, value) in a}
print(d) #{'name': 'zhangsan', 'age': '11', 'phone': 'a'}
​
#字典刪除 del c全清空 
del c[1]#【】裏面是key
print(c)
#輸出 {2: 'b', 3: 'c'}

c.pop(2)#()裏面是key
print(c)
#輸出 {3: 'c'}

根據value獲得key的值 || 根據key獲得value的值

#根據value值取對應的key值
#原理:根據根據key列表然後獲取索引採用下標訪問key
a_dict = {1:'0001', 2: '0002'}
print(list(a_dict.keys())) # key 列表
print([list(a_dict.values()).index('0002')]) # 對應的索引值
print(list(a_dict.keys())[list(a_dict.values()).index('0002')])

[1, 2]
[1]
2

#根據key獲得value
a_dict = {1:'0001', 2: '0002'}
print(a_dict[1])

0001

json操作

內置函數

import json
a='cxk'
b=['c','x','k']
c={'c':1,'x':2,'k':3}

#將 Python 對象編碼成 JSON 字符串
d=json.dumps(a)
print(type(d),d)
#輸出<class 'str'> "cxk"

d=json.dumps(b)
print(type(d),d)
#>輸出<class 'str'> ["c", "x", "k"]

d=json.dumps(c)
print(type(d),d)
#>輸出<class 'str'> {"c": 1, "x": 2, "k": 3}

#格式化輸出
e=json.dumps(c,sort_keys=True, indent=4, separators=(',', ': '))
print(e)
"""
{
    "c": 1,
    "k": 3,
    "x": 2
}
"""

#將已編碼的 JSON 字符串解碼爲 Python 對象
a=json.loads(d)
print(type(a),a)
#>輸出<class 'dict'> {'c': 1, 'x': 2, 'k': 3}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章