Python基础数据类型(字符串、列表、集合、元组、字典)

2023-12-22 09:28:23

1.字符串

使用双引号或者单引号中的数据就是字符串。三引号允许一个字符串跨多行。

下标和切片

所谓“下标”,就是编号,通过这个编号就能找到相应的存储空间。(Python中下标从0开始)

列表与元组支持下标索引, 字符串实际上就是字符的数组,所以也支持下标索引。

name = 'abcdef'
print(name[0])  #取下标为0的字符(a)
print(name[2])  #取下标为2的字符(c)

切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。

切片的语法:[起始:结束:步长]

注意:选取的区间属于左闭右开型,即从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身)。

name = 'abcdef'
print(name[0:3]) ?#取下标0~2 的字符
print(name[3:5]) ?#取下标为3、4 的字符
print(name[2:]) ?#取下标为2开始到最后的字符
print(name[1:-1]) ?#取下标为1开始到最后第2个之间的字符
print(name[:3]) ?#取下标为0~2的字符
print(name[::2]) ?#取全部字符,间隔为2
print(name[5:1:-2]) #反向取下标5到1的字符间隔为2
print(name[1:5:2])  #取下标1到5的字符间隔为2
字符串的运算符

+:相当于拼接

*:相当于倍数

in:在...里面,返回值是布尔类型

not in:不在...里面,返回值是布尔类型

s1 = 'asd'
s2 = 'asd' 
print(s1 == s2) # ==比较的是内容
print(s1 is s2) # is比较的是地址
# 但是,当使用input()输入时,由于input函数底层做了处理
# 所以,此时s1,s2的地址是不一样的
s1 = input('请输入:')
s2 = input('请输入:')
print(s1 == s2)
print(s1 is s2)
字符串的内建函数
#   查找替换
find() # 查找字符在字符串中出现的位置,若没找到则返回-1,如果可以找到则返回字符第一次出现的位置,也可以指定查找范围
    s.find('a', 1, 6)   # 在1~6内查找a
rfind() # 从字符串的右侧开始查找
lfind() # 从字符串的左侧开始查找
index() # 跟find方法一样,只不过如果str不在字符串中会报一个异常
rindex() ?# 类似于index,不过是从右边开始
replace(old,new[,max]) # 将字符串中的old替换成new,如果指定max,则替换不超过max次
#   大小写
capitalize() # 将字符串的第一个字符大写
title() # 返回标题化的字符串,即所有单词首字母大写
upper() # 将字符串全部转换成大写
lower() # 将字符串全部转换成小写
#   其他
startswith() # 判断是否以...开头,返回值是布尔类型
endswith() # 判断是否以...结尾,返回值是布尔类型
    # 应用:文件上传时判断文件类型是否匹配
isalpha() # 判断是否是字母
isdigit() # 判断是否是数字
join(seq) # 以指定的字符作为分隔符,将seq中的所有元素合并为一个新的字符串
    new_str = '-'.join('abc') # --> 'a-b-c'
strip() # 去除字符串两端的空格
lstrip() # 去除字符串左侧的空格
rstrip() # 去除字符串右侧的空格
split() # 分割字符串,遇到参数分割一次,将分割后的字符串保存到列表中
partition(str) # 以str分割成三部分,str前,str和str后
rpartition() # 类似于partition,不过从右边开始
count() # 求字符串中指定参数的个数
ljust(x) # 返回一个原字符串左对齐,并使用空格填充至长度x的新字符串
rjust(x) # 返回一个原字符串右对齐,并使用空格填充至长度x的新字符串
center(x) # 返回一个原字符串居中,并使用空格填充至长度x的新字符串

2.列表(List)

列表的定义和遍历

# 定义
 ? ?namesList = ['xiaoWang','xiaoZhang','xiaoHua']
    namelist=list()
# 打印列表
 ? ?namesList = ['xiaoWang','xiaoZhang','xiaoHua']
 ? ?print(namesList[0])
 ? ?print(namesList[1])
 ? ?print(namesList[2])
# 遍历
    使用for循环
 ? ?namesList = ['xiaoWang','xiaoZhang','xiaoHua']
 ? ?for name in namesList:
 ? ? ? ?print(name)
    使用while循环
    namesList = ['xiaoWang','xiaoZhang','xiaoHua']
    length = len(namesList)
    i = 0
    while i<length:
 ? ? ? ?print(namesList[i])
 ? ? ? ?i+=1

列表中存放的数据可以进行修改,比如增、删、改等

# 添加元素
append() # 在末尾添加
extend() # 可以将另一个集合中的元素逐一添加到列表中,类似于合并
insert() # 在指定的位置前加入元素
# 修改元素(通过下标确定修改)
A = ['xiaoWang','xiaoZhang','xiaoHua']
A[1] = 'xiaoLu'
# 查找元素
in(存在),如果存在那么结果为True,否则为False
not in(不存在),如果不存在那么结果为true,否则false
index和count与字符串中的用法相同
# 删除元素
del:根据下标进行删除
    del list[index]
remove(e) # 删除列表中第一次出现的元素e,返回值是None,如果没有找到要删除的元素,则报出异常
pop() # 移除列表中的最后一个元素,返回值是删除的元素,默认删除最后一个,但是也可以指定下标删除
clear() # 清除列表,里面所有元素全部删除,没有返回值
# 元素排序
sort() # 默认为由小到大
reverse() # 反转
sorted(list) # 排序,类似于sort
count() # 列表中指定参数的个数

列表的嵌套

a=[[1,2,3],[4,5,6],[7,8,9]]
# while循环遍历
i=0
while i<len(a):
 ? ?n=0
 ? ?while n<len(a[i]) :
 ? ? ? ?print(a[i][n])
 ? ? ? ?n+=1
    i+=1
# for循环遍历
for i in a:
 ? ?for k in i:
 ? ? ? ?print(k)

3.集合(Set)

集合(set)是一个无序不重复元素的序列。输出集合时重复的元素被自动去掉,基本功能是进行成员关系测试和删除重复元素。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

# 增加元素
    add(): 添加一个元素
    update(): 可以添加多个元素(将'abc'分为a,b,c添加)
# 删除元素
    remove(): 如果元素存在则删除,否则报错keyerror
    pop(): 随机删除,一般删除第一个元素
    clear(): 清空集合
    discard(): 类似remove(),在移除不存在的元素时不会报错
# 集合运算
差集:
    set1 - set2
    set2.difference(set1)
交集:
    set1 & set2
    set2.intersection(set1)
并集:
    set1 | set2
    set2.union(set1)

4.元组(Tuple)

元组与列表类似,不同之处在于元组的元素不能修改,元组使用小括号,列表使用方括号。

# 访问元组
tuple = ('hello',10,3.14)
print(tuple[0])
print(tuple[1])
# 修改元组
    元组中的元素值是不允许修改的,但可以对元组进行连接组合 ?+
tup1 = (12, 34.56)
tup2 = ('abc', 'xyz')
tup3 = tup1 + tup2
>>> (12, 34.56, 'abc', 'xyz')
# 删除元组
    元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组
del tuple;

当变量个数与元组内的元素个数不一致时,可以进行拆装包:

t1 = (2,5,8,9,7)
a,*b,c = t1 ?# --> a = 2,b = [5,8,9],c = 7  装包
print(*b) # --> 5,8,9  拆包
t1 = (9,)
a,*b = t1 # --> a = 9,b = []

元组使用sorted进行排序,返回结果为列表。

5.字典(Dictionary)

字典和列表一样,也能够存储多个数据。

字典的每个元素以键值对的形式存在,键:值 key:value

根据键访问值

# 增加元素
dict[key] = value
    key在字典中是唯一的,如果按上述格式,若key在原字典中存在,则修改其值为value,若没有则实现添加功能。
# 查询元素
字典中找元素根据key去找相应的value,单独遍历字典,只能取出字典的key
函数:
    items():其结果为一个列表,列表中每个元素为一个元组,元组为键值对
    此时,遍历:for key,value in dict.items()
    values():取出字典中的所有value,保存到列表中
    key():取出字典中的所有key,保存到列表中
    其中,in也可以用于字典操作,用于判断元素有没有在字典的key中出现
    get():dict.get(key),取当前key所对应的value,若取不到则返回None,get(key,default):如果取不到则返回default的值
# 删除元素
del:删除指定元素 
    del dict[key]
    del dict #删除整个字典
pop(key[,default]): 根据key删除字典中的键值对,若删除成功则返回该值,否则返回default
popitem(): 随机删除字典中的键值对,一般从末尾删除
clear():清空字典

文章来源:https://blog.csdn.net/tcz_666/article/details/132781432
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。