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()) #根据键排序
字典的遍历:
1 for i in dic5: #字典后面什么方法都没有,这样只会将key赋值给i,不包括值 2 print(i,dic5[i]) 3 4 for i,v in dic5.items(): #字典后面跟items,会将key和值都赋值给前面变量,如果前面有两个变量,会分别赋值 5 print(i,v)
字符串:
重复输出字符串:
print('hello'*2) #输出两遍hello
通过索引获取字符串中字符,这里和列表的切片操作是相同的:
print('helloworld'[2:])
in 成员运算符,如果字符串中包含给定的字符返回True
print('el' in 'hello')
格式化字符串:就是格式化输出
字符串拼接:
a='123' b='abc' c=a+b
c=''.join([a,b])
1 a='123' 2 b='abc' 3 d='888' 4 c='***'.join([a,b,d]) 5 print(c) 6 7 123***abc***888 #这是输出结果
String的内置方法:
1 st = 'hello kitty' 2 print(st.count('y')) #统计y字母的个数 3 print(st.capitalize()) #将字符串首字母大写,此处会将H大写,k不会大写 4 print(st.center(50,'-')) #打印50个-,并将字符串居中 5 print(st.ljust(50,'*')) #将字符串放左面,右边打印50个* 6 print(st.rjust(50,'*')) #将字符串放右面,左面打印50个* 7 print(st.endswith('tty')) #判断是否以某个内容结尾,返回布尔值 8 print(st.startswith('h')) #判断是否以某个内容开头,返回布尔值 9 print(st.expandtabs(tabsize=10)) # 10 print(st.find('t')) #查找到第一个元素,并将索引值返回,空格也算 11 st = 'hello kitty {name} is {age}' 12 print(st.format(name='alex',age = 37)) #格式化输出的另一种方式 13 print(st.format_map({'name':'alex','age':22})) #格式化输出的另一种方式 14 print(st.index('qqq')) #和find功能一样,只不过index找不到会报错,而find不会 15 print('126.999'.isdigit()) #必须整型,不然返回False 16 print('abc'.islower()) #判断字符串是不是都是小写 17 print('ABC'.isupper()) #判断字符串是不是都是大写 18 print(''.isspace()) #判断是否是一个空格,不是包含空格 19 print('My title'.istitle()) #判断是不是每个单词首字母大写 20 print('My title'.lower()) #将所有大写变小写 21 print('My title'.upper()) #将所有小写变大写 22 print('My title'.swapcase()) #将大小写反转 23 print(' My title '.strip()) #将前后空格和换行符去掉 24 print(' My title '.lstrip()) #将前面空格和换行符去掉 25 print(' My title '.rstrip()) #将后面空格和换行符去掉 26 print('My title title'.replace('title','lesson'1)) #对某些字符进行替换 27 print('My title'.rfind('t')) #从右面查找字符索引,索引还是从左往右的索引 28 print('My title'.split('i')) #用i将字符分开,结果中不再包含i,i做分隔符了,通常用空格,和join是相反操作 29 print('My title'.title()) #将字符串中的英文单词首字母大写
摘一些重要的字符串方法:
1 print(st.count('y')) #统计y字母的个数 2 print(st.center(50,'-')) #打印50个-,并将字符串居中 3 print(st.startswith('h')) #判断是否以某个内容开头,返回布尔值 4 print(st.find('t')) #查找到第一个元素,并将索引值返回,空格也算 5 print(st.format(name='alex',age = 37)) #格式化输出的另一种方式 6 print('My title'.lower()) #将所有大写变小写 7 print('My title'.upper()) #将所有小写变大写 8 print(' My title '.strip()) #将前后空格和换行符去掉 9 print('My title title'.replace('title','lesson'1)) #对某些字符进行替换 10 print('My title'.split('i')) #用i将字符分开,结果中不再包含i,i做分隔符了,通常用空格,和join是相反操作