数据类型一般包括:列表,元组,集合,字典,字符串
列表:
增加操作:
1、追加
names.append()
2、插入及列表嵌套
names.insert(索引位置对应的值,插入对象(可以使列表))
3、合并
names.extend()
删除操作
1. 直接删除
del: del names[索引值]
2. 删除指定元素并返回删除值
names.pop(索引值)
3.清空
names.clear()
修改操作
names[索引值] = "修改内容"
查操作
>>>names.index("A")
#返回从左开始匹配到的第一个A的索引
>>>names.count("A")
#返回A的个数
切片
>>>names[start:end]
*切片的特性是顾头不顾尾,即start的元素会被包含,end-1是实际取出来的值
>>>names[-5:-1] #倒着切
>>>names[start:end:step]#step为步长
>>>a[::-1] #通过把步长设置成负值,可达到列表返转的效果
>>>a.sort()#排序
元组
元组的创建
a= tuple()
其余操作方式参考list
元组本身不可变,如果元组中还包含其他可变元素(例如列表),这些可变元素可以改变
字符串
字符串是一个有序的字符的集合,用于存储和表示基本的文本信息,’ ‘或’’ ‘’或’’’ ‘’’中间包含的内容称之为字符串
字符串的常用操作方式有很多,百度搜索
- 特性:按照从左到右的顺序定义字符集合,下标从0开始顺序访问,有序
- 可以进行切片操作
- 不可变,字符串是不可变的,不能像列表一样修改其中某个元素,所有对字符串的修改操作其实都是相当于生成了一份新数据
- 字符串的单引号和双引号都无法取消特殊字符的含义,如果想让引号内所有字符均取消特殊意义,在引号前面加r,如name=r’l\thf’
字典
特性:key-value结构; key必须为不可变数据类型、必须唯一; 可存放任意多个value、可修改、可以不唯一; 无序
查询速度快
创建:
>>>person = {"name": "alex", 'age': 20}
#或
>>>person = dict(name='seven', age=20)
#或
>>>person = dict({"name": "egon", 'age': 20})
#或
>>> {}.fromkeys([1,2,3,4,5,6,7,8],100)
{1: 100, 2: 100, 3: 100, 4: 100, 5: 100, 6: 100, 7: 100, 8: 100}
增加操作:
names["a"] = [26, "d", dfdf]
names.setdefault("oldboy",[50,"boss",100000]) # D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D
删除:
names.pop("alex") # 删除指定key
names.popitem() # 随便删除1个key
del names["oldboy"] # 删除指定key,同pop方法
names.clear() # 清空dict
修改:
dic['key'] = 'new_value',如果key在字典中存在,'new_value'将会替代原来的value值;
dic.update(dic2) 将字典dic2的键值对添加到字典dic中
查:
dic['key'] #返回字典中key对应的值,若key不存在字典中,则报错;
dic.get(key, default = None)#返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None)
'key' in dic #若存在则返回True,没有则返回False
dic.keys() 返回一个包含字典所有KEY的列表;
dic.values() 返回一个包含字典所有value的列表;
dic.items() 返回一个包含所有(键,值)元组的列表;
集合
特性:
- 里面的元素不可变,代表你不能存一个list、dict 在集合里,字符串、数字、元组等不可变类型可以存
- 天生去重,在集合里没办法存重复的元素(使用set()转化为集合进行去重)
- 无序,不像列表一样通过索引来标记在列表中的位置 ,元素是无序的,集合中的元素没有先后之分,如集合{3,4,5}和{3,5,4}算作同一个集合
增加
a.add(元素)
删除
a.discard(元素)
a.pop() #删除并返回
a.remove(索引)
集合无法修改,可以通过移除和添加的方式进行
print(a.isdisjoint(b)) # 判断2个集合是不是不相交,返回True or False
print(a.issubset(b)) # 判断a是不是b的子集,返回True or False
print(a.issuperset(b)) # 判断a是不是b的父集,返回True or False