欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

字符串、列表、元组、集合、字典

程序员文章站 2022-07-14 22:32:23
...

字符串
字符串就是一系列数字,在python中,用引号引起来的都是字符串,其中的引号可以是单引号,也可以 是双引号
符串或串(String)是由数字、字母、下划线组成的一串字符。
它是编程语言中表示文本的数据类型。
python的字串列表有2种取值顺序:

  1. 从左到右索引默认0开始的,最大范围是字符串长度少1

  2. 从右到左索引默认-1开始的,最大范围是字符串开头
    如果你要实现从字符串中获取一段子字符串的话,可以使用 [头下标:尾下标] 来截取相应的字符串,其 中下标是从 0 开始算起,可以是正数或负数,下标可以为空表示取到头或尾。

    str = 'Hello World'
    print(str)
    print(str[0])
    print(str[2:5])
    print(str[2:])
    print(str * 2)
    print(str + "TEST")
    

加号(+)是字符串连接运算符,星号(*)是重复操作。

运行后

Hello World
H
llo
llo World
Hello WorldHello World
Hello WorldTEST

Python 列表截取可以接收第三个参数,参数作用是截取的步长

str = "abababababa"
print(str[2:10:2])

运行后

	aaaa

字符串的拼接

name = "wo men ai"
name1 = "shangluo"
full_name = name +" "+ name1
print(full_name)

结果

wo men ai shangluo

修改字符串的大小

name = "wo men ai shangluo" 

首字母大写

print(name.title())

Wo Men Ai Shangluo

全体大写

print(name.upper())

WO MEN AI SHANGLUO

全体小写

name = "WO MEN AI SHANGLUO"
print(name.lower())

wo men ai shangluo

列表
list 列表是python中最频繁的数据类型
列表可以完成大多数集合类的数据结构实现。它支持字符,数字,字符串甚至可以包含列表(即嵌 套)。
列表用 [ ] 标识,是 python 最通用的复合数据类型。
列表中值的切割也可以用到变量 [头下标:尾下标],就可以截取相应的列表,从左到右索引默认 0 开 始,从右到左索引默认 -1 开始,下标可以为空表示取到头或尾。
加号 + 是列表连接运算符,星号 * 是重复操作。如下实例:

list = ['runoob',777,3.14,'anliu',70.2] 
tinylist = [123,'john'] 
print(list) 
print(list[0]) 
print(list[1:3]) 
print(list[2:]) 
print(tinylist * 2) 
print(list + tinylist)

结果

['runoob', 777, 3.14, 'anliu', 70.2]
runoob
[777, 3.14]
[3.14, 'anliu', 70.2]
[123, 'john', 123, 'john']
['runoob', 777, 3.14, 'anliu', 70.2, 123, 'john']

在列表末尾添加元素

names = ["zhangsan","lisi","wanger"] 
names.append("mazi") 
print(names)

结果

['zhangsan', 'lisi', 'wanger', 'mazi']

插入元素

names.insert(0,"xxx")
print(names)

结果

['xxx', 'zhangsan', 'lisi', 'wanger', 'mazi']

删除元素

del names[1]
print(names)

结果

['xxx', 'lisi', 'wanger', 'mazi']

使用pop删除
*默认删除最后一个元素

names.pop()
print(names)	

结果

['xxx', 'lisi', 'wanger']

也可以取出列表中任何位置的元素

a= names.pop(1)#取出第一位置的元素,并存到a中
print(a)#输出a
print(names)#输出列表

结果

lisi
['xxx', 'wanger', 'mazi']

根据值删除元素.remove

print(names)
names.remove("lisi")
print(names)	

结果

['zhangsan', 'lisi', 'wanger']
['zhangsan', 'wanger']

元组
类似于列表,用()标识。内部元素用逗号隔开。但是元组不能二次赋值,相当于只读列表。

tuple = ('runoob', 786, 2.23, 'john', 70.2) 

元祖就其本质而言,就是一个不可变列表,不像列表一样能够修改元素。因此,元组没有修改操作以 为,其他类似于列表。
集合
集合是一个无序的,不重复的数据集合,可以使用大括号 { } 或者 set() 函数创建集合,注意:创 建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典
主要作用:

  1. 去重,把一个列表变成集合,就自动去重了。

  2. 关系测试,测试两组数据之间的交集,差集,并集等关系。
    关系测试

    list_1 = [1,4,57]
    list_1 = set(list_1)
    print(list_1,type(list_1))
    list_2 = set([1,8,3])
    print(list_1,list_2)
    #求交集
    print(list_1.intersection(list_2))
    #求并集
    print(list_1.union(list_2))
    #求差集
    print(list_1.difference(list_2))
    #list1里面有,list2里面没有的
    #求子集
    print(list_1.issubset(list_2))
    #求父集
    print(list_1.issuperset(list_2))
    #对称差集
    print(list_1.symmetric_difference(list_2))
    #判断是否有交集,有则为不为真
    list_3 = set([5,6,9])
    list_4 = set([4,7,9])
    print(list_3.isdisjoint(list_4))
    

    结果

    {1, 4, 57} <class 'set'>
    {1, 4, 57} {8, 1, 3}
    {1}
    {1, 3, 4, 8, 57}
    {57, 4}
    False
    False
    {8, 57, 3, 4}
    False
    

集合操作

#添加
list_1 = set()
list_1.add(999)
print(list_1)
list_1.update([666,777,555])
print(list_1)
#删除
list_1.remove(777)
print(list_1)
print(list_1.pop())
print(list_1.discard(777))
#取长度
print(len(list_1))
#判断元素是否在集合中
print(666 in list_1)
print(666 not in list_1)

结果

{999}
{777, 666, 555, 999}
{666, 555, 999}
666
None
2
False
True

字典
字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象集合,字典 是无序的对象集合。
两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典用"{ }"标识。字典由索引(key)和它对应的值value组成。

dict = {}
dict['one'] = "This is one"
dict[2] = "This is two"
tinydict = {'name': 'john', 'code': 6734, 'dept': 'sales'}
print(dict['one']) # 输出键为'one' 的值
print(dict[2]) # 输出键为 2 的值
print(tinydict) # 输出完整的字典
print(tinydict.keys()) # 输出所有键
print(tinydict.values()) # 输出所有值

结果

This is one
This is two
{'name': 'john', 'code': 6734, 'dept': 'sales'}
dict_keys(['name', 'code', 'dept'])
dict_values(['john', 6734, 'sales'])

增,删,改,查:

info = {
    'hebei':"shijiazhuang",
    'shanxi':"shangluo",
    'henan':"zhumadian"}
print(info)
print(info["hebei"]) #访问字典值,该方法在键值不存在时报错
print(info.get("hebei")) #该方法在之不存在的时候,返回null
print("hebei" in info) #判断键值是否存在于字典
info["henan"]  = "toujingai" #有则修改
print(info)
info["hubei"] = "jinzhou" #无则添加
print(info)#del info  删除字典
info.pop("henan") #删除元素
print(info)
info.popitem() #随机删除print(info)

结果

{'hebei': 'shijiazhuang', 'shanxi': 'shangluo', 'henan': 'zhumadian'}
shijiazhuang
shijiazhuang
True
{'hebei': 'shijiazhuang', 'shanxi': 'shangluo', 'henan': 'toujingai'}
{'hebei': 'shijiazhuang', 'shanxi': 'shangluo', 'henan': 'toujingai', 'hubei': 'jinzhou'}
{'hebei': 'shijiazhuang', 'shanxi': 'shangluo', 'hubei': 'jinzhou'}

嵌套

info = {
    '1001':{'name':"zhangsan",'身高':"195",'体重':180},
    '1002':{'name':"lisi",'身高':"179",'体重':"250"},
    '1003':{'name':"wangwu",'身高':"180",'体重':"130"}
        }
print(info)