字符串+列表+元组
字符串
1.字符串的定义—单引号、双引号、三引号
三引号—辅助功能—注释语句
2.字符串使用场景
1.字符串对象
2.路径
3.url
3.字符串拼接
print('name is '+'tom')
4.序列
1.字符串获取元素—下标获取
print('长度:---------> ',len(str1))
print(str1[len(str1)-1])
2.字符串不能使用下标去修改
5.切片操作
#获取中间一段 —2刀
第1刀:你需要获取字符串的第一个元素的下标
第2刀:第一刀下标+你需要获取字符串长度
str1 = 'abcdef'
# #获取前半段:写后取前
print(str1[:3])
#获取后半段:写前取后
print(str1[-2:])
汇总
1- 切片使用下标操作
2- 切片不影响原数据类型
3- 获取的数据类型与原数据一致
4- 左含右不含
5- 获取字符串元素操作—非常常见
方案:
1- 切片—有一边元素是固定格式
2- ‘xxx’.split()----需要有规律
3- 强大–正则表达式—re模块
列表+元组
1.列表—可以存储任意类型的数据
alist = [10,'hello',3.14,[100,200]]
a.取值—一个值:下标;多个值:切片
print(len(alist))
print(alist[0])
print(alist[-1][0])
print(100 in alist)#False
b.修改值
alist[-1][0] = ''
print(alist)
c.增加元素
alist=[10,20,30,40]
alist.append(50)
alist.insert(9,[100,200])
#insert插入的位置的下标 >len 相当于—append
d.删除
1.del
del alist[1],alist[2]#[10, 30]
del alist[1:1+2]#[10, 40]
del alist[::2]#[20, 40]
2- pop 有返回值—返回被删的对象
res = alist.pop(2)
print(res)
alist = [10,20,30,40,20]
#3- remove----根据值来删除—判断值—三种里面效率最低 #
#值一定存在–否则报错-list.remove(x): x not in list #
#多个值–只能删第一个出现的 # alist.remove(20)
e.合并列表
1- 临时合并–另存新地址–新对象
print(alist+[40,50]) #id()--地址发生变化
2.同一个地址—扩展列表
alist.extend([40,50])
# print(alist,'------id: ',id(alist))
汇总:
1- 列表是—可变对象
2- 任意类型–存储
2.元组:只读–不可改变:元素个数、元素的值
使用场景:
1- 列表:存储数据–可以修改的、排序
2- 元组:一些项目的系统配置数据—不能修改
systemConfigData = (‘xxx = false’,)
字典
特性:
1- 键值对形式
2- 无序的
3- 键是唯一的
定义:
键:一定是:不可以改变的类型
可以是:字符串、int、float、元组
不可以是:TypeError: unhashable type: ‘list’
列表 、字典
值:
1- 可以任意类型
2- 值可以修改
#2- 字典的操作
dict1 = {'name':'tom','age':20,'data':{'id':'001','date':'20200601'}}
#1- 查询
print(dict1['data']['id'])
#2- 修改值---键要存在
dict1 = {'name':'tom','age':20}
dict1['name'] = 'jack'#
print(dict1)
#3- 增加元素---键不存在
dict1 = {'name':'tom','age':20}
dict1['weight'] = 180#
print(dict1)
#4- 删除元素--一起删除键值对---没有remove
del dict1['name']
dict1.pop('age')
#5- 元素的个数
print(len(dict1))
# #6- 更新-多个键值对一起更新
dict1.update({'xxx':'jack','data':[10,20]})
print(dict1)
#7- in---判断键在不在字典
dict1 = {'name':'tom','age':20}
if 'name' in dict1:
print('在里面')
#8- 获取所有的键---类列表:1、不支持下标 2、可以for遍历
print(list(dict1.keys()))#强制转换成list---新地址对象
for one in dict1.keys():
print(one)
#9- 获取所有的值--类列表:1、不支持下标 2、可以for遍历
print(dict1.values())
#10- 获取所有的键值对--类列表:1、不支持下标 2、可以for遍历
print(dict1.items())
for one in dict1.items():
print(one)
for a,b in dict1.items():[(x,20),(y,30)]
print(a,b)
for one in dict1:#键遍历
print(one)
#扩展--字典使用
vipData = '''{
"aac003": "tom",
"tel": "13574556577",
"crm003": "1",
"crm004": "1"
}'''
'''
json和字典的转换
#1- json-转换-字典
import json
print('转换前----> ',type(vipData),vipData)
temp = json.loads(vipData)#转换类型的--字典
temp['aac003'] = 'jack'
print('转换后----> ',type(temp),temp)
#2- 字典-转换-json
print(json.dumps(temp),type(json.dumps(temp)))
'''