Python:Day06 元组、字典、字符串

时间:2021-11-27 07:38:01

tuple(元组)

元组被称为只读列表,即数据可以被查询,但不能被修改,所以列表的切片操作同样适用于元组。

元组写在( )里,元素之间用逗号隔开。

tul1 = ( )  #空元组

tul2 = (20,)  #一个元素需要在面添加逗号

另外,元组的意义还在于,元组可以在映射(和集合的成员)中当作键使用---而列表则不行,元组作为很多内建函数和方法的返回值存在。

len() 方法返回对象(字符、列表、元组等)长度或项目个数。

Dictionary(字典)

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定 value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

字典(dictionary)是除列表以外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取的。

dic1 = {'name':'alex' , 'age':36 , 'sex':'male'}

dic1['name']  #通过键来取值

所有的数据类型,不论哪一种都可以做为值。

键必须是唯一的,且不能修改。

数据类型:数字、字符串、布尔值、列表、元组、字典。

查看内存地址:id(a)

数据类型不可变类型:整型、字符串、元组

数据类型可变类型:列表、字典

字典两在特点:无序、键唯一

增加:

1、dic1['age'] = 18  #字典后面直接跟中括号,里面写要加的键并且赋一个值。

2、dic1.setdefault('age',34)  #如果字典中没有这个键,则新加这个键值对,返回值为新赋的值,如果有,此次赋值不生效,返回值为原有值。

查:

dic3['name']

dic3.keys()  #查看字典中所有的键

dic3.values()  #查看字典中所有的值

dic3.items()  #查看所有键值对

改:

dic3['name'] = 55

dic4.update(dic3)  #将字典3增加到字典4中,如果有相同的,则更新。

删:

dic5.clear()  #清空字典

del dic5['name']  #删除整个键值对

dic5.pop('age')  #将键值对删掉,并将键值对的值返回,键不返。

dic5.popitem()  #随机删除某个键值对,并以元组的形式返回值。键值都返回。

del dic5  #删除整个字典

其它操作以及涉及到的方法:

dic6=dic.fromkeys(['host1','host2','host3'],'tset')

字典的嵌套:

字典排序:

sorted(dict):返回一个有序的包含字典所有key的列表,根据key排序

sorted(dict.values())  #根据值排序

sorted(dict.items())  #根据键排序

字典的遍历:

 for i in dic5:        #字典后面什么方法都没有,这样只会将key赋值给i,不包括值
print(i,dic5[i]) for i,v in dic5.items(): #字典后面跟items,会将key和值都赋值给前面变量,如果前面有两个变量,会分别赋值
print(i,v)

字符串:

重复输出字符串:

print('hello'*2)    #输出两遍hello

通过索引获取字符串中字符,这里和列表的切片操作是相同的:

print('helloworld'[2:])

in 成员运算符,如果字符串中包含给定的字符返回True

print('el' in 'hello')

格式化字符串:就是格式化输出

字符串拼接:

a=''
b='abc'
c=a+b
c=''.join([a,b])
 a=''
b='abc'
d=''
c='***'.join([a,b,d])
print(c) 123***abc***888 #这是输出结果

String的内置方法:

 st = 'hello kitty'
print(st.count('y')) #统计y字母的个数
print(st.capitalize()) #将字符串首字母大写,此处会将H大写,k不会大写
print(st.center(50,'-')) #打印50个-,并将字符串居中
print(st.ljust(50,'*')) #将字符串放左面,右边打印50个*
print(st.rjust(50,'*')) #将字符串放右面,左面打印50个*
print(st.endswith('tty')) #判断是否以某个内容结尾,返回布尔值
print(st.startswith('h')) #判断是否以某个内容开头,返回布尔值
print(st.expandtabs(tabsize=10)) #
print(st.find('t')) #查找到第一个元素,并将索引值返回,空格也算
st = 'hello kitty {name} is {age}'
print(st.format(name='alex',age = 37)) #格式化输出的另一种方式
print(st.format_map({'name':'alex','age':22})) #格式化输出的另一种方式
print(st.index('qqq')) #和find功能一样,只不过index找不到会报错,而find不会
print('126.999'.isdigit()) #必须整型,不然返回False
print('abc'.islower()) #判断字符串是不是都是小写
print('ABC'.isupper()) #判断字符串是不是都是大写
print(''.isspace()) #判断是否是一个空格,不是包含空格
print('My title'.istitle()) #判断是不是每个单词首字母大写
print('My title'.lower()) #将所有大写变小写
print('My title'.upper()) #将所有小写变大写
print('My title'.swapcase()) #将大小写反转
print(' My title '.strip()) #将前后空格和换行符去掉
print(' My title '.lstrip()) #将前面空格和换行符去掉
print(' My title '.rstrip()) #将后面空格和换行符去掉
print('My title title'.replace('title','lesson'1)) #对某些字符进行替换
print('My title'.rfind('t')) #从右面查找字符索引,索引还是从左往右的索引
print('My title'.split('i')) #用i将字符分开,结果中不再包含i,i做分隔符了,通常用空格,和join是相反操作
print('My title'.title()) #将字符串中的英文单词首字母大写
摘一些重要的字符串方法:
 print(st.count('y'))    #统计y字母的个数
print(st.center(50,'-')) #打印50个-,并将字符串居中
print(st.startswith('h')) #判断是否以某个内容开头,返回布尔值
print(st.find('t')) #查找到第一个元素,并将索引值返回,空格也算
print(st.format(name='alex',age = 37)) #格式化输出的另一种方式
print('My title'.lower()) #将所有大写变小写
print('My title'.upper()) #将所有小写变大写
print(' My title '.strip()) #将前后空格和换行符去掉
print('My title title'.replace('title','lesson'1)) #对某些字符进行替换
print('My title'.split('i')) #用i将字符分开,结果中不再包含i,i做分隔符了,通常用空格,和join是相反操作