python数据类型(字符串、列表操作)

一、整形和浮点型
整形也就是整数类型(int)的,在python3中都是int类型,没有什么long类型的,比如说存年龄、工资、成绩等等这样的数据就可以用int类型,有正整数、负整数和0,浮点型的也就是小数类型(folat)的,带小数点的

1 age = 18
2 b = -50
3 c = 5.222

二、布尔类型
什么是布尔类型,布尔类型就是真和假,只有这两种,True和Fasle,非真即假,除了True和False还有0和1,非0即真

1  a = True
2  b = False

三、字符串和字符串操作
上面说了存数字,那要是想存自己的名字呢,那用int类型的就不行了,不能一个人的名字叫数字吧,这样怎么办呢,就有另一种数据类型应运而生,就是字符串,它可以存任意类型的字符串,比如名字,一句话等等。

1 name = ‘Sriba‘
2 msg = ‘Welcome to my blog.‘

四、列表和列表操作

上面说了字符串和整形,那现在要是想存一个班级的人的名字,这个班有200个人,怎么存呢,用字符串的话,那就是names = ‘marry lily king .....‘这样,但是这样存是可以存,那要是想取到某个人的名字怎么取呢,不能再去里面看一遍吧,那累死人了,为了解决这个问题,又有一种新的数据类型应运而生,那就是列表,这也是我们在以后的开发过程中,最常用的数据类型之一,列表也叫数组,列表定义,使用[]即可;列表里面可以再套列表,一个里面套一个列表,叫二维数组;一个里面套一个列表,里面的列表再套一个列表,这个叫三维数组,套几层就是几维,定义格式如下:

1 #names=‘崔海龙   杨帆   刘荣心.....‘
2  list 列表  数组   array
3                    #0         1      2
4 stu_name=[‘崔海龙‘,‘杨帆‘,‘刘荣心‘,‘....‘]
5 下标、索引、角标
6 计算机里面起始都是从0开始的
7 print(stu_name[1])

通过下标访问列表中的元素,下标从0开始计数,也就是说,比如说一个列表,有个5元素,那么它第一个元素下标就是0,第二个就是1,以此类推,字符串也有下标,和列表一样 对列表的操作,分以下几种增、删、改、查
增:

1 stu_name=[‘崔海龙‘,‘杨帆‘,‘刘荣心‘,‘....‘]
2 stu_name.append(‘杨月‘)    #在list的末尾添加一个元素
3 stu_name.insert(0,‘小军‘)   #指定位置填加元素
4 print(stu_name)

1 stu_name=[‘崔海龙‘,‘杨帆‘,‘刘荣心‘]
2 stu_name[6]=‘aaad‘
3 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’)

1 my_list=[‘小黑‘,‘小白‘,1,1,2,1.5]
2 print(stu_name[-1]
3 print(stu_name[0]4 print(stu_name.count(1))  #查询某个元素在list里面出现的次数

五、列表操作,一些内置方法

 1 my_list=[‘小黑‘,‘小白‘,1,1,2,1.5]
 2 print(stu_name.count(1)) #查询某个元素在list里面出现的次数
 3 print(’index方法:‘stu_name.index(1)  #查询元素的下标
 4 print(’index方法:‘stu_name.index(89)  #查询元素的下标,元素不存在会报错
 5 print(‘reverse方法:’,my_list.reverse())  #reverse是反转list
 6 print(my_list)
 7
 8 my_list.clear()   #清空整个list
 9 print(my_list)
10
11 nums=[9,23,4,6,3,78,0]
12 nums.sort()    #排序  升序
13 nums.sort(reverse=Ture)   #反转  降序,如果指定reverse=Ture那么就是降
14  nums.extend(my_list) #把一个list中的元素加入进入(合并)
15 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)   #乘几次复制几次

 

六、数组

 1 nums1 =[1,2,3]  # 一维数据
 2 nums2 =[1,2,3,[4,56]]  # 二维数据
 3 print(nums2[3][3])     #取56
 4 print(nums2[-1][-1])   #取56
 5 nums=[1,2,3,4,[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,[‘一‘,‘二‘,‘三‘]]]
 6
 7 # nums=[1,2,3,4,[‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,[‘一‘,‘二‘,‘三‘]],[‘四‘,‘五‘]] #三维数组
 8 print(nums[4][5][1])   #取到‘二 ’
 9 print(nums[-1][-1])     #取到‘五’
10
11 passwords =[‘123456‘,‘123123‘,‘7891234‘]
12 print(len(passwords))   # 取长度,也就是list时面元素的个数
13 passwords[0]=‘dsdsdsdsd‘
14 循环这个list
15 #count=0 # 最原始的LIST取值方式,是通过
16 #while count<len(passwords):
17 #s=passwords[count]
18 #print(‘每次循环的时候‘,s)
19 #count+=1
20 #
21 for p in passwords:  # for循环直接循环一个list,那么循环的时候就每次取他的值
22 print(‘每次循环的值‘,p)
23  p=‘abc_‘+p
24
25 #修改pawssword的值,每个值前面增加abc-
26 index=0
27 for p in  passwords:
28     passwords[index]=‘abc-‘+p
29     index+=1
30     print(passwords)

32 #另一个修改方式33 passwords =[‘123456‘,‘123123‘,‘7891234‘]34 for index,p in enumerate(passwords):  #使用枚举函数,它会帮你计算下标35 passwords[index]=‘abc_‘+p36 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=‘上海自来水来自海上‘
#123321
#111111
#回文算法,反过来倒过去都一样
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使用“:”分隔。
举个列子,如果用列表存每个人的信息的话,需要用两个列表,一个存人名,一个存信息:

1 names = [‘marry‘,‘amy‘,‘lily‘]
2 infos = [[18,18612512981,‘北京‘],[20,18612512991,‘山东‘],[25,18612532981,‘河南‘]]

给一个名字,如果要查他的对应信息,那就要先从names里面找到它的位置,然后再从infos中找到它的信息,如果这个列表越长,那么它的查询速度越慢。
如果用字典实现的话,只需要一个名字和信息对应的一个表,这样就很快的根据名字找到它对应的信息,无论这个表有多大,查找速度都不会变慢。

1  infos = {‘marry‘:[18,18612512981,‘北京‘],‘amy‘:[20,18612512991,‘山东‘],‘lily‘:[25,18612532981,‘河南‘]}
2  infos[‘marry‘] #取marry的信息

为什么dict查找速度这么快?因为dict的实现原理和查字典是一样的。假设字典包含了1万个汉字,我们要查某一个字,一个办法是把字典从第一页往后翻,直到找到我们想要的字为止,这种方法就是在list中查找元素的方法,list越大,查找越慢。
第二种方法是先在字典的索引表里(比如部首表)查这个字对应的页码,然后直接翻到该页,找到这个字。无论找哪个字,这种查找速度都非常快,不会随着字典大小的增加而变慢,这种就是字典的实现方式。
字典的特性:
字典是无序的,因为它没有下标,用key来当索引,所以是无序的
字典的key必须是唯一的,因为它是通过key来进行索引的,所以key不能重复,天生就去重
字典的增删改查:
增加:

stus={}
stus[‘name‘]=‘小军‘  #增加名字为小军
stus[‘name‘]=‘海龙‘   #小军的名字改为海龙
#stus.setdefaulta(‘name‘,‘杨帆‘)  #如果这个key已经存在,那么就不修改它的值了
stus.setdefault(‘age‘,18)
stus.setdefault(‘email‘,‘[email protected]‘)
stus.setdefault(‘sex‘,‘女‘)
stus.setdefault(‘phone‘,‘183232323‘)
print(stus)

修改

1 stus[‘name‘]=‘海龙

删除

1 del suts[‘phone‘]
2 stus.pop(‘phone‘)3 stus.potitem()   #随机删除

查询

1 print(stus[‘name‘])
2 print(stus.get(‘name‘))#取不到值,不会报错,返回none3 print (stus.keys())  #取出所有的Kay4 print (stus.values())#取出所有的values5 6 for k in stus:  #取key和values7 print(k,‘===>‘,stus.get(k))
8 for k ,v  in stus.items():    #取key和values9 print(k,‘===>‘,v)

合并字典

1 stus.update({‘moeny‘:1000})  #把后面的值或是函数合并到前面
2 print(stus)

字典嵌套多层取值

 1 all_stus={
 2     ‘xiaojun‘:
 3         {
 4         ‘sex‘:‘m‘,
 5         ‘shengao‘:‘185‘,
 6         ‘age‘:18,
 7         ‘email‘:‘[email protected]‘,
 8         ‘addr‘:‘火星‘,
 9         ‘id‘:1,
10         ‘car‘:[‘牧马人‘,‘911‘,‘野马‘,‘劳期莱斯‘]
11         #
12     },
13     ‘hailong‘:
14         {
15         ‘sex‘: ‘m‘,
16         ‘shengao‘: ‘185‘,
17         ‘age‘: 18,
18         ‘email‘: ‘[email protected]‘,
19         ‘addr‘: ‘火星‘,
20          ‘id‘: 1
21         },
22     ‘yangfan‘:
23         {
24         ‘sex‘: ‘m‘,
25         ‘shengao‘: ‘185‘,
26         ‘age‘: 18,
27         ‘email‘: ‘[email protected]‘,
28         ‘addr‘: ‘火星‘,
29         ‘id‘: 1,
30         ‘bags‘:{
31             ‘qianbao‘:[‘lv‘,‘ysl‘],
32             ‘beibao‘:[‘coach‘,‘abc‘]
33         }
34         }
35 }
36
37 #给xiaojun中car中增加‘五菱宏光’
38 all_stus[‘xiaojun‘][‘car‘].append(‘五菱宏光‘)
39 print(all_stus)
40 #查看xiaojun一个有多少辆车
41 print(len(all_stus[‘xiaojun‘][‘car‘]))
42 #修改yangfan,性别改成女
43 all_stus[‘yangfan‘][‘sex‘]=‘女‘
44 print(all_stus)
45 #删除yangfan-bags-lv
46 all_stus[‘yangfan‘][‘bags‘][‘qianbao‘].remove(‘lv‘)
47 print(all_stus)
48 all_stus[‘yangfan‘][‘bags‘][‘qianbao‘].pop(‘lv‘)
49 print(all_stus)

字符串常用方法

 1 #password=‘ 123456 \n 456789‘
 2 #print(password)
 3 #print(password.strip()) #默认去掉字符串两边的空格和换行符
 4 password=‘.jpg 123456789 .jpg ABCDE‘
 5 new_password=password.strip(‘.jpg‘) #默认去掉字符串两边的空格和换行符,以及指定的字符串
 6 print(‘password‘,password)
 7 print(‘new_pasword‘,new_password)
 8 print(password.upper())  #转换成大写
 9 print(password.lower())  #转换成小写
10 print(password.capitalize())  #把首字母改成大写的
11 print(password.count(‘.jpg‘)) #统计.jpg在password中出现的次数
12 print(password.replace(‘12345‘,‘上山打考虎‘))   #把12345替换成上山打发考虎
13 print(password.replace(‘12354444‘,‘上山打考虎‘))   #找不到内容不替换,也不报错
14
15 filename=‘a.mp3‘
16 print(filename.endswith(‘.mp3‘))  #判断是否以XX结尾
17 print(filename.startswith(‘186‘))   #判断是否以开头
18 a=True  #布尔类型,真
19 b=False #假,条件不成立变成
20
21 names=‘小军,海龙,杨帆,谭爱玲‘
22 #print(list(names))
23 print(names.split(‘,‘))  #1、是把字符串变成list   2、以某个字符串分割,分割之后的是list中的每一个元素
24
25 #如何删除字符串中间的宽格
26 names=‘小军 海龙  杨帆       谭爱玲‘
27 print(names.replace(‘ ‘,‘‘))  #把空格变成空字符串

文件读写

 1 #1、有个文件
 2 #2、打开文件
 3 #3、操作文件  读、写
 4 #4、关闭
 5
 6 #创建一个users.txt文件
 7 文件内容:
 8 abc,123
 9 bcd,456
10
11
12 f=open(‘users.txt‘,‘a+‘)
13 f.seek(0)  #t移动文件指针
14 print(f.read()) #获取到文件里面所有的内容
15 f.write(‘yangfan,123456‘)
16 f.flush()
17 f.close()
 

原文地址:https://www.cnblogs.com/jingshuhui/p/9545572.html

时间: 2024-08-04 23:57:43

python数据类型(字符串、列表操作)的相关文章

python数据类型-字符串常用操作

这次主要介绍字符串常用操作方法及例子 1.python字符串 在python中声明一个字符串,通常有三种方法:在它的两边加上单引号.双引号或者三引号,如下: name = 'hello' name1 = "hello bei jing " name2 = '''hello shang hai haha''' python中的字符串一旦声明,是不能进行更改的,如下: #字符串为不可变变量,即不能通过对某一位置重新赋值改变内容 name = 'hello' name[0] = 'k' #通

Python 数据类型之列表和元组

Python 数据类型之 列表和元组 Python 根据每个变量的初始赋值情况分析其类型,并在内部对其进行跟踪 内置数据类型Booleans [布尔型] True[真] 或 False [假]Numbers [数值型] Integers[整数] Float[浮点数] Fractions[分数] Complex Number[复数]Strings [字符串型] Unicode 字符序列Bytes [字节] 和 Bytes Arrays [字节数组]Lists [列表] 是值的有序序列Tuples

python 数据类型 序列——列表

python 数据类型 序列--列表 **列表** list是处理一组有序项目的数据结构,即你可以在一个列表中存储一个序列的项目. 列表是可变类型的数据. 用[]表示列表,包含了多个以逗号分割开的数字或者字符串. >>> list1 = ['1','chen','陈'] >>> list2 = [1,2,3,4] >>> list3 = ["str1","str1","22"] >>

python数据类型及相关操作

python数据类型详解 目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8.字典9.日期 1.字符串1.1.如何在Python中使用字符串a.使用单引号(')用单引号括起来表示字符串,例如:str='this is string';print str; b.使用双引号(")双引号中的字符串与单引号中的字符串用法完全相同,例如:str="this is string";print str; c.使用三引号(''')利用三引号,表示多行的字符串,可以在三引号

三:python数据类型和文件操作

一:字符串操作 1.字符串是可以通过下标来进行取值的,但是由于字符串是不可变变量,不能通过下标来修改它的值 username = 'li' username[0] 2.python里面的for循环,每次循环的时候,循环的是循环对象里面的每一个元素 3.len(names)#取变量的长度 4.#!/usr/bin/python #python里面有个这个话,代表在linux下运行的时候,去哪个目录下找python的解释器,在windows上运行不用写 5.# coding:utf-8 # __*_

6 Python 数据类型—字符串

字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可. var1 = 'Hello World!' var2 = "Python Runoob" Python访问字符串中的值 Python不支持单字符类型,单字符也在Python也是作为一个字符串使用. Python访问子字符串,可以使用方括号来截取字符串 1 var1 = 'Hello World!' 2 var2 = "Python Ru

DAY4 Python数据类型之列表

一.列表 列表:列表是由一系列按照特定顺序排列的元素组合.列表相当于一个容器,里面可以存储python的任意数据类型,在别的语言中又称为数组. 一.  创建数组 li = ['python',100,'java','c++'] str_list = ['c'*3] ----> ['c','c','c'] #谨记:是把字符串变成三个,而不是"ccc" str_list = [['c'] * 3] ----> [['c','c','c']] #谨记:列表*3,是把列表中的元素重

小白从零开始学编程(五)--python数据类型--字符串

前言 从2020年3月份开始,计划写一系列文档--<小白从零开始学编程>,记录自己从0开始学习的一些东西. 第一个系列:python,计划从安装.环境搭建.基本语法.到利用Django和Flask两个当前最热的web框架完成一个小的项目 第二个系列:可能会选择Go语言,也可能会选择Vue.js.具体情况待定,拭目以待吧... 基本概念 字符串时候Python中最常见的数据类型,通过引号间包含字符串的方式就可以创建一个字符串数据,因为python中没有字符这个数据类型,所以单引号和双引号的作用是

python学习笔记——列表操作

python列表操作--增 append:追加一条数据到列表的最后 name = ["Zhangsan","XiongDa","Lisi"] name.append("wangwu") print name 输出结果: ['Zhangsan', 'XiongDa', 'Lisi', 'wangwu'] insert:指定位置插入一条数据 name = ["Zhangsan","XiongDa&qu

python关于字符串的操作

#-*- coding:utf-8 -*-#Author:gxli#字符串的操作name=' zhangsan,lisi,wangwu '#分割操作name=name.split(',')print(name)#[' zhangsan', 'lisi', 'wangwu ']#列表转字符串拼接name='|'.join(name)print(name)# zhangsan|lisi|wangwu #去除开头结尾制定字符name2=' lgx 'name2=name2.strip()#name2=