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'}

字典翻转

a={"A":"a","B":"b","C":"c"}
b={j:i for i,j in a.items()}
print(b)
>>>
{'a': 'A', 'b': 'B', 'c': '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}

时间

常用

import time
#当前时间戳
one = time.time()
#时间戳可视化
now_time=time.ctime(one)
print(now_time,type(now_time))
>>>
Tue Oct 27 19:02:40 2020 <class 'str'>
        
# 时间格式化
now_time2= time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
print(now_time2)
>>>
2020-10-27 19:03:40

# 代码运行时间
#低版本,将在3.8版本移除
start =time.clock()
time.sleep(1)
end = time.clock()
print('Running time: %.3f Seconds'%(end-start))
#高版本 perf_counter
start =time.perf_counter()
time.sleep(1)
end = time.perf_counter()
print('Running time: %.3f Seconds'%(end-start))
>>>
Running time: 1.001 Seconds
Running time: 1.003 Seconds

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

智能视界探索者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值