Python第三天-----字符串、列表、元组、字典
字符串、列表、元组、字典
字符串、列表、元组、字典都属于序列。序列的优点是:支持索引和切片操作。
切片:截取序列中的一段内容。格式为:[起始下标:结束下标:步长](左闭右开),步长指隔几个元素取一次。
切片(以字符串为例,其他的格式相同)
#切片
text='Hello Python'
print(text) #Hello Python
#从第三个字符(下标为2,左闭)到第五个字符(下标为4,右开)
print(text[2:5]) #llo
#从第四个字符(下标为3)到最后
print(text[3:]) #lo Python
#从开始到第五个字符(下标为4)
print(text[:4]) #Hell
#倒序输出
print(text[::-1]) #nohtyP olleH
一、字符串
test='i like python' #字符串本身就是一个集合
#字符串常用函数
print(test[0]) #输出:i
#首字母大写
print(test.capitalize()) #I like python
#查询 find()和index()都可用作查询,区别:find若没有找到会返回-1,index会报错
print(test.index('0')) #11
print(test.find('o')) #11
#都变为小写
print(test.lower()) #i like python
#都变为大写
print(test.upper()) #I LIKE PYTHON
#判断开头或结尾
print(test.startswith('i')) #True
print(test.endswith('n')) #True
二、列表
格式:[ , , , ,] ,数据项可以是任何类型的数据;支持索引和切片操作。
li=[1,2,'a',1.23,True,'人'] #列表中的元素可以是任意类型的
1、列表的添加
append():在列表后面添加数据;
insert(n,a):在下标为n的位置插入a;
extend(a):把子字符串a添加在原字符串后面
list1=['abc',1,2,1.23,True]
list1.append(['aaa','bbb']) #在列表后面添加数据
print(list1) #['abc', 1, 2, 1.23, True, ['aaa', 'bbb']]
list1=['abc',1,2,1.23,True]
list.insert(1,'fff')#在第二个数据的位置插入'fff',其他数据往后移动
print(list1) #['abc', 'ffff', 1, 2, 1.23, True]
list1=['abc',1,2,1.23,True]
list2=[1,2,3]
list1.extend(list2)
print(list1) #['abc', 1, 2, 1.23, True, 1, 2, 3]
2、列表的修改
直接通过下标修改
list1=['abc',1,2,1.23,True]
list1[0]=12345
print(list1) #[12345, 1, 2, 1.23, True]
3、列表的删除
del;
remove(a):a是移除列表的元素
pop(b):b是移除列表的下标
list3=list(range(1,10)) #将range类型转换为list类型
#list1=[1, 2, 3, 4, 5, 6, 7, 8, 9]
#del
del list3[1] #把第二个数据删除
print(list3) #[1, 3, 4, 5, 6, 7, 8, 9]
del list3[2:5] #删除第3个到第5个
print(list3) #[1, 3, 7, 8, 9]
#remove
list3=list(range(1,10))
list3.remove(2) #移除2这个元素
print(list3) #[1, 3, 4, 5, 6, 7, 8, 9]
#pop()
list3=list(range(1,10))
list3.pop() #移除最后一项
print(list3) #[1, 2, 3, 4, 5, 6, 7, 8]
list3.pop(1) #移除下标为1的数据
print(list3) #[1, 3, 4, 5, 6, 7, 8, 9]
三、元组
元组是一种不可变的序列,不可以修改。用小括号()创建元组类型,用逗号分割。元组中的元素可以是任意类型。当元组中只有一个元素时,要加上逗号,否则会当成整型处理。
1、元组的查询(通过下标或者切片)
tuple1=('a',1,2,3.14,'python',(12,3),[1,2,3])
print(tuple1[0]) #a
print(tuple1[1:2:]) #(1,)
2、元组不可修改,但是可以对元组中的列表进行修改。
tuple1=('a',1,2,3.14,'python',(12,3),[1,2,3])
tuple1[6][0]=34 #tuple1[6]是列表元素,tuple1[6][0]是列表中的第一个元素,改为34
print(tuple1) #('a', 1, 2, 3.14, 'python', (12, 3), [34, 2, 3])
3、count():统计元素出现的次数
tuple2=(1,2,1,2,1,1,3,5)
print(tuple2.count(1)) #4
四、字典
字典是由“键值对”组成的集合,通常使用"j键"访问数据,和列表一样,支持对数据的添加、修改、删除操作。其特点是:字典不是序列,没有下标的概念,是无序的。字典用{}表示,中间用逗号分隔。“键”必须是不可变的类型【元组、字符串】,“值”可以是任意类型。每个“键”一定是唯一的,若存在重复的键,则后者会覆盖前者。
dict1={'name':'张三','age':'18'} #声明字典
1、添加字典数据
dict1={} #声明字典
dict1['profession']='计算机'
dict1['school']='xx学校'
print(dict1) #{'profession': '计算机', 'school': 'xx学校'}
2、修改
直接修改;update()
#直接修改
dict2={'name':'张三','age':'18','profession': '计算机', 'school': 'xx学校'}
dict2['name']='李四'
print(dict2) #{'name': '李四', 'age': '18', 'profession': '计算机', 'school': 'xx学校'}
#通过update()
dict2={'name':'张三','age':'18','profession': '计算机', 'school': 'xx学校'}
dict2.update({'age':'19','school':'张三中学'})
print(dict2) #{'name': '张三', 'age': '19', 'profession': '计算机', 'school': '张三中学'}
3、获取所有的键、值或键值对
keys():获取字典中所有的键。
values():获取所有的值。
items():获取所有的键值对。
dict3={'name':'张三','age':'18','profession': '计算机', 'school': 'xx学校'}
print(dict3.keys()) #dict_keys(['name', 'age', 'profession', 'school'])
print(dict3.values()) #dict_values(['张三', '18', '计算机', 'xx学校'])
print(dict3.items()) #dict_items([('name', '张三'), ('age', '18'), ('profession', '计算机'), ('school', 'xx学校')])
for key,value in dict3.items():
print('%s==%s'%(key,value),end=' ') #name==张三 age==18 profession==计算机 school==xx学校
4、删除
通过对指定键进行删除
del方法和pop()方法
dict3={'name':'张三','age':'18','profession': '计算机', 'school': 'xx学校'}
del dict3['name'] #将name的键值对删除
dict3.pop('age')
print(dict3) #{'profession': '计算机', 'school': 'xx学校'}
五、序列的公共操作
1、合并操作 +(字符串、列表、元组)
str1='123'
str2='456'
print(str1+str2) #123456
lista=list(range(10))
listb=list(range(11,20))
print(lista+listb) #[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 14, 15, 16, 17, 18, 19]
2、复制操作 * (字符串、列表、元组)
str1='123'
print(str1*3) #123123123
tuple2=(1,2,1)
print(tuple2*3) #(1, 2, 1, 1, 2, 1, 1, 2, 1)
3、in 判断对象是否存在(字符串、列表、元组、字典)(布尔类型)
str1='123345456'
print('1' in str1) #True
dict1={'name':'张三','age':'16'}
print('name' in dict1) #True
推荐阅读
-
Python如何使用“列表解析式”、“字典解析式”、“集合解析式”
-
python提取字典key列表的方法
-
浅谈Python 列表字典赋值的陷阱
-
Python中实现字符串类型与字典类型相互转换的方法
-
python解决字典中的值是列表问题的方法
-
python3利用ctypes传入一个字符串类型的列表方法
-
day15(PYTHON)推导式{生成器,字典,列表,集合}
-
Python字符串、元组、列表、字典互相转换的方法
-
python3 json数据格式的转换(dumps/loads的使用、dict to str/str to dict、json字符串/字典的相互转换)
-
详细整理python 字符串(str)与列表(list)以及数组(array)之间的转换方法