python数据类型(字符串、列表操作)
一、整形和浮点型
整形也就是整数类型(int)的,在python3中都是int类型,没有什么long类型的,比如说存年龄、工资、成绩等等这样的数据就可以用int类型,有正整数、负整数和0,浮点型的也就是小数类型(folat)的,带小数点的
age = 18
b = -50
c = 5.222
二、布尔类型
什么是布尔类型,布尔类型就是真和假,只有这两种,True和Fasle,非真即假,除了True和False还有0和1,非0即真
a = True
b = False
三、字符串和字符串操作
上面说了存数字,那要是想存自己的名字呢,那用int类型的就不行了,不能一个人的名字叫数字吧,这样怎么办呢,就有另一种数据类型应运而生,就是字符串,它可以存任意类型的字符串,比如名字,一句话等等。
name = 'Sriba'
msg = 'Welcome to my blog.'
四、列表和列表操作
上面说了字符串和整形,那现在要是想存一个班级的人的名字,这个班有200个人,怎么存呢,用字符串的话,那就是names = 'marry lily king .....'这样,但是这样存是可以存,那要是想取到某个人的名字怎么取呢,不能再去里面看一遍吧,那累死人了,为了解决这个问题,又有一种新的数据类型应运而生,那就是列表,这也是我们在以后的开发过程中,最常用的数据类型之一,列表也叫数组,列表定义,使用[]即可;列表里面可以再套列表,一个里面套一个列表,叫二维数组;一个里面套一个列表,里面的列表再套一个列表,这个叫三维数组,套几层就是几维,定义格式如下:
#names='崔海龙 杨帆 刘荣心.....'
list 列表 数组 array
#0 1 2
stu_name=['崔海龙','杨帆','刘荣心','....']
下标、索引、角标
计算机里面起始都是从0开始的
print(stu_name[1])
通过下标访问列表中的元素,下标从0开始计数,也就是说,比如说一个列表,有个5元素,那么它第一个元素下标就是0,第二个就是1,以此类推,字符串也有下标,和列表一样 对列表的操作,分以下几种增、删、改、查
增:
stu_name=['崔海龙','杨帆','刘荣心','....']
stu_name.append('杨月') #在list的末尾添加一个元素
stu_name.insert(,'小军') #指定位置填加元素
print(stu_name)
改
stu_name=['崔海龙','杨帆','刘荣心']
stu_name[6]='aaad'
print('修改之后的',stu_name)
删
stu_name=['崔海龙','杨帆','刘荣心','张三',‘小军’,'']
stu_name.pop() #删除最后一个元素
stu_name.pop(4) #删除指定下标的的元素
stu_name.remove('小军') #删除指定的元素
#如果有一样的元素,只会删除第一个
stu_name.pop(18) # 删除不存在下标的元素,会报错
del sty_name[-1] #下标指定删除的元素,-1删除最后一个元素,如果用负数,从后面开始数,如果是正负从前面开始数,指定删除
print (‘stu_name’)
查
my_list=['小黑','小白',1,1,2,1.5]
print(stu_name[-1]
print(stu_name[0]
4 print(stu_name.count(1)) #查询某个元素在list里面出现的次数
五、列表操作,一些内置方法
my_list=['小黑','小白',1,1,2,1.5]
print(stu_name.count(1)) #查询某个元素在list里面出现的次数
print(’index方法:‘stu_name.index(1) #查询元素的下标
print(’index方法:‘stu_name.index(89) #查询元素的下标,元素不存在会报错
print('reverse方法:’,my_list.reverse()) #reverse是反转list
print(my_list) my_list.clear() #清空整个list
print(my_list) nums=[9,23,4,6,3,78,0]
nums.sort() #排序 升序
nums.sort(reverse=Ture) #反转 降序,如果指定reverse=Ture那么就是降
nums.extend(my_list) #把一个list中的元素加入进入(合并)
print(nums)
16 new_list = nums+my_list # 和extend的区别,extend是把my_list的值放到mums里,new_list=nums+my_list,是新建了一个
17 print(new_list)
18 print(new_list * 3) #乘几次复制几次
六、数组
nums1 =[1,2,3] # 一维数据
nums2 =[1,2,3,[4,56]] # 二维数据
print(nums2[3][3]) #取56
print(nums2[-1][-1]) #取56
nums=[1,2,3,4,['a','b','c','d','e',['一','二','三']]] # nums=[1,2,3,4,['a','b','c','d','e',['一','二','三']],['四','五']] #三维数组
print(nums[4][5][1]) #取到‘二 ’
print(nums[-1][-1]) #取到‘五’ passwords =['','','']
print(len(passwords)) # 取长度,也就是list时面元素的个数
passwords[0]='dsdsdsdsd'
循环这个list
#count=0 # 最原始的LIST取值方式,是通过
#while count<len(passwords):
#s=passwords[count]
#print('每次循环的时候',s)
#count+=1
#
for p in passwords: # for循环直接循环一个list,那么循环的时候就每次取他的值
print('每次循环的值',p)
p='abc_'+p #修改pawssword的值,每个值前面增加abc-
index=0
for p in passwords:
passwords[index]='abc-'+p
index+=1
print(passwords) 32 #另一个修改方式
33 passwords =['123456','123123','7891234']
34 for index,p in enumerate(passwords): #使用枚举函数,它会帮你计算下标
35 passwords[index]='abc_'+p
36 print(passwords)
七、切片,切片也就是另一种方式获取列表的值,它可以获取多个元素,可以理解为,从第几个元素开始,到第几个元素结束,获取他们之间的值,格式是name:[1:10],比如说要获取name的第一个元素到第五个元素,就可以用name[0:6],切片是不包含后面那个元素的值的,记住顾头不顾尾;前面的下标如果是0的话,可以省略不写,这样写,name[:6],切片后面还有可以写一个参数,叫做步长,也就是隔多少个元素,取一次,默认可以不写,也就是隔一个取一次,切片操作也可以对字符串使用,和列表的用法一样,实例如下:
# 就是list取值的一种方式
#l=list(range(1,10))
l=['a','b','c','d','e','f','g','k','m','n']
# 0 1 2 3 4 5 6 7 8 9 对应的下标
# print(l[0:3]) #顾头不顾尾
# print(l[0:5])
# print(l[:5])#如果最前面没写的话,代表从0开始取的
# print(l[4:]) #如果冒号后面的没写的话,代表取到最后
# print(l[0:8:2]) # 取0-8的值,每隔两个取一次
# print(l[::2]) # 步长,也就是代表每个几个取一次 nums=list(range(1,101))
print(nums[1::2]) #取1-100的偶数
print(nums[::2]) #取1-100的奇数
print(nums[::-2]) #取奇数
# 如果最后面的步长是正数的话,那就从左到右开始取值
#如果后面的步长负数的话,那么就从左往左开始取值 #切片同样适应于字符串
# words='中秋节要上课'
# print(words[0])
# print(words[::-1])
# for w in words:
# print('每次打印的',w)
#
#
# for index,w in enumerate(words):
# print('每次打印的',index,w) s='上海自来水来自海上'
#
#
#回文算法,反过来倒过去都一样
for i in range(10):
s=input('请输入一个字符串:')
if len(s)<2:
print('字符串长度必须大于1')
elif s==s[::-1]:
print('是回文')
else:
print('不是回文')
八、字典
上面说了,整形、浮点型、字符串、列表和元组,下面说个新的数据类型,字典,字典也是我们开发过程中最常用的一种数据类型;想一个问题,现在要存整个北京市的所有人的信息,每个人有姓名、年龄、性别、家庭住址、学历等等,那要是用列表存的话,那就得定义N多个数组,然后存上每个人的信息,那累死人了。。。这时候又有一种新的数据类型出现了,那就是字典,dict,全称是dictionary,它具有极快的查找速度;字典是一种key-value的数据类型,比如说要存每个人的信息,那么每个人的编号就是key,value就是每个人的信息,这样的话,一个字典就能存所有人的信息了。字典的定义使用{},大括号,每个值用“,”隔开,key和value使用“:”分隔。
举个列子,如果用列表存每个人的信息的话,需要用两个列表,一个存人名,一个存信息:
names = ['marry','amy','lily']
infos = [[18,18612512981,'北京'],[20,18612512991,'山东'],[25,18612532981,'河南']]
给一个名字,如果要查他的对应信息,那就要先从names里面找到它的位置,然后再从infos中找到它的信息,如果这个列表越长,那么它的查询速度越慢。
如果用字典实现的话,只需要一个名字和信息对应的一个表,这样就很快的根据名字找到它对应的信息,无论这个表有多大,查找速度都不会变慢。
infos = {'marry':[18,18612512981,'北京'],'amy':[20,18612512991,'山东'],'lily':[25,18612532981,'河南']}
infos['marry'] #取marry的信息
为什么dict查找速度这么快?因为dict的实现原理和查字典是一样的。假设字典包含了1万个汉字,我们要查某一个字,一个办法是把字典从第一页往后翻,直到找到我们想要的字为止,这种方法就是在list中查找元素的方法,list越大,查找越慢。
第二种方法是先在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢,这种就是字典的实现方式。
字典的特性:
字典是无序的,因为它没有下标,用key来当索引,所以是无序的
字典的key必须是唯一的,因为它是通过key来进行索引的,所以key不能重复,天生就去重
字典的增删改查:
增加:
stus={}
stus['name']='小军' #增加名字为小军
stus['name']='海龙' #小军的名字改为海龙 #如果这个key不存在就新增,如果存在就修改
#stus.setdefaulta('name','杨帆') #如果这个key已经存在,那么就不修改它的值了
stus.setdefault('age',18)
stus.setdefault('email','1833@qq.com')
stus.setdefault('sex','女')
stus.setdefault('phone','')
print(stus)
修改
stus['name']='海龙
删除
del suts['phone']
stus.pop('phone')
3 stus.potitem() #随机删除
查询
print(stus['name'])
print(stus.get('name'))#取不到值,不会报错,返回none
3 print (stus.keys()) #取出所有的Kay
4 print (stus.values())#取出所有的values
5
6 for k in stus: #取key和values
7 print(k,'===>',stus.get(k))
8 for k ,v in stus.items(): #取key和values
9 print(k,'===>',v)
合并字典
stus.update({'moeny':1000}) #把后面的值或是函数合并到前面
print(stus)
字典嵌套多层取值
all_stus={
'xiaojun':
{
'sex':'m',
'shengao':'',
'age':18,
'email':'acb@qq.com',
'addr':'火星',
'id':1,
'car':['牧马人','','野马','劳期莱斯']
#
},
'hailong':
{
'sex': 'm',
'shengao': '',
'age': 18,
'email': 'acb@qq.com',
'addr': '火星',
'id': 1
},
'yangfan':
{
'sex': 'm',
'shengao': '',
'age': 18,
'email': 'acb@qq.com',
'addr': '火星',
'id': 1,
'bags':{
'qianbao':['lv','ysl'],
'beibao':['coach','abc']
}
}
} #给xiaojun中car中增加‘五菱宏光’
all_stus['xiaojun']['car'].append('五菱宏光')
print(all_stus)
#查看xiaojun一个有多少辆车
print(len(all_stus['xiaojun']['car']))
#修改yangfan,性别改成女
all_stus['yangfan']['sex']='女'
print(all_stus)
#删除yangfan-bags-lv
all_stus['yangfan']['bags']['qianbao'].remove('lv')
print(all_stus)
all_stus['yangfan']['bags']['qianbao'].pop('lv')
print(all_stus)
字符串常用方法
#password=' 123456 \n 456789'
#print(password)
#print(password.strip()) #默认去掉字符串两边的空格和换行符
password='.jpg 123456789 .jpg ABCDE'
new_password=password.strip('.jpg') #默认去掉字符串两边的空格和换行符,以及指定的字符串
print('password',password)
print('new_pasword',new_password)
print(password.upper()) #转换成大写
print(password.lower()) #转换成小写
print(password.capitalize()) #把首字母改成大写的
print(password.count('.jpg')) #统计.jpg在password中出现的次数
print(password.replace('','上山打考虎')) #把12345替换成上山打发考虎
print(password.replace('','上山打考虎')) #找不到内容不替换,也不报错 filename='a.mp3'
print(filename.endswith('.mp3')) #判断是否以XX结尾
print(filename.startswith('')) #判断是否以开头
a=True #布尔类型,真
b=False #假,条件不成立变成 names='小军,海龙,杨帆,谭爱玲'
#print(list(names))
print(names.split(',')) #1、是把字符串变成list 2、以某个字符串分割,分割之后的是list中的每一个元素 #如何删除字符串中间的宽格
names='小军 海龙 杨帆 谭爱玲'
print(names.replace(' ','')) #把空格变成空字符串
文件读写
#1、有个文件
#2、打开文件
#3、操作文件 读、写
#4、关闭 #创建一个users.txt文件
文件内容:
abc,123
bcd,456 f=open('users.txt','a+')
f.seek(0) #t移动文件指针
print(f.read()) #获取到文件里面所有的内容
f.write('yangfan,123456')
f.flush()
f.close()
#如果这个key不存在就新增,如果存在就修改
python数据类型(字符串、列表操作)的更多相关文章
- Python编程之列表操作实例详解【创建、使用、更新、删除】
Python编程之列表操作实例详解[创建.使用.更新.删除] 这篇文章主要介绍了Python编程之列表操作,结合实例形式分析了Python列表的创建.使用.更新.删除等实现方法与相关操作技巧,需要的朋 ...
- python数据类型:列表List和Set
python数据类型:列表List, Set集合 序列是Python中最基本的数据结构 序列中每个元素都分配一个数字,表示索引 列表的数据项不需要具有相同的类型 列表中的值可以重复并且有 ...
- Python数据类型和数据操作
python数据类型有:int,float,string,boolean类型.其中string类型是不可变变量,用string定义的变量称为不可变变量,该变量的值不能修改. 下面介绍python中的l ...
- Python数据类型(列表)
文章内容参考了教程:http://www.runoob.com/python/python-basic-syntax.html#commentform Python 列表(List) 序列是Pytho ...
- 6 Python 数据类型—字符串
字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可. var1 = 'Hello World!' var2 = ...
- python学习-字符串 列表 元祖
目录 Python翻转字符串(reverse string) 简单的步长为-1, 即字符串的翻转(常用) 递归反转 借用列表,使用reverse()方法 字符串常用操作 index split 切片 ...
- Redis数据类型之列表操作
redis 目录: 1.自动分配(redis) - 批量导入 2.微信自动绑定 3.django的ORM做不了的操作,怎么自定义操作数据库 extra ’ 4.报表 公司每个月销售的业绩 5.权限 = ...
- python之字符串,列表,字典,元组,集合内置方法总结
目录 数字类型的内置方法 整型/浮点型 字符串类型的内置方法 列表的内置方法 字典的内置方法 元组的内置方法 集合类型内置方法 布尔类型 数据类型总结 数字类型的内置方法 整型/浮点型 加 + 减 - ...
- 初识python: 字符串常用操作
直接上代码示例: #!/user/bin env python # author:Simple-Sir # time:20180914 # 字符串常用操作 name = 'lzh lyh' print ...
- python关于字符串的操作
#-*- coding:utf-8 -*-#Author:gxli#字符串的操作name=' zhangsan,lisi,wangwu '#分割操作name=name.split(',')print( ...
随机推荐
- 蓝牙协议分析(12)_LQ和RSSI的原理及应用场景
在蓝牙协议栈的物理层,有这样两个比较有用的参数:LQI和RSSI.它们都是通过接收端,判断当前无线环境的质量(链路质量),以指导后续的动作.但这两个数值的计算原理和使用场景又有很大的差别. LQI ( ...
- css-改变input原始样式
1.改变input的提示字位置 input::-webkit-input-placeholder { /* placeholder颜色 */ color: #aab2bd; /* placeholde ...
- git与github学习
一 我的Github 我的Github项目地址:https://github.com/lllmathison/hello 二 对github与git的学习.感受 git是一个版本管理工具,在本地使用的 ...
- Power BI 3-4月功能更新培训合集
Power BI 3-4月功能更新培训合集 Power BI每月功能的更新,都有很多大咖精辟解读,我们一直也都是积极中期待,相信所有P友如是或更甚. 视频学习可以结合微软Power BI 3-4月文 ...
- 非对称加密, 助记词, PIN, WIF
一钱包 1.1非对称加密, 助记词, PIN, WIF, 地址 1.1.1 非对称加密算法 非对称加密算法, 加密与解密使用不同的KEY, 我们分别称为私钥与公钥,其中可以通过私钥生成公钥 在比特币中 ...
- iview中,table组件在缩进时产生的bug。
问题描述: 在父元素因为缩进的关系撑开时,table组件不会因为父元素的撑开而自适应,问题如图 解决办法:在父一级的组件中使用table {width: 100% !important},强制使表格宽 ...
- ln 软链
ln -s a b 中的 a 就是源文件,b是链接文件名,其作用是当进入b目录,实际上是链接进入了a目录 如上面的示例,当我们执行命令 cd /gamestat/的时候 实际上是进入了 /hom ...
- python标准库之random模块
Python中的random模块用于生成随机数. 下面具体介绍random模块的功能: 1.random.random() #用于生成一个0到1的 随机浮点数:0<= n < 1.0 1 ...
- Mysql update指定区间的数据
,) as a) Mysql 中 limit不能作为字句,所以要在limit外面再嵌套一层select
- conts、var 、let的区别
1.const定义的变量不可以直接修改,通过 this.a = 'kkk' 进行修改, 而且必须初始化. 2.var定义的变量可以修改,如果不初始化会输出undefined 3.let是块级作用域,函 ...