字符串(不可变类型) | 列表(可变类型) | 元组(不可变类型) | 字典(可变类型) | 集合(可变类型) | |
特性 | 和列表类似,有下标索引,是可迭代对象 | 一种有序的集合 | 只读的列表 | python中唯一的键值关系映射集合。键唯一且为不可变类型 | set内的元素一定是不可变数据类型,且自带去重 |
创建 | s=str();s="abc"; | li=[1,];li=list((1,2,3)); | tu=(1,);tu=tuple([1,2,3]); | dic={1:"a",2:"b"};dic=dict(); | s={1,2,3};s=set([1,2,3]); |
查询 | s[1:7:2];s.index('a',1,6);s.find('a',1,6); "a" in s s.count("elemente") len(s) | li[index];li[1:7:2];li.index["elemente"];li.count("elemente");len(li);"elemente" in li | tu[index];tu[1:7:2];tu.index["elemente"];tu.count("elemente");len(tu);"elemente" in tu | dic["key"];dic.get(key); #找不到返回默认值(None,可修改)dic.keys(); #Iterabledic.values(); #Iterable "key" in dic; len(dic) | s.issubset(s1);#等同s<s1s.issuperset(s1);#等同s>s1s.isdisjoint(s1);#s和s1有没有交集 "elemente" in s len(s) |
增加 | li.insert(index,"elemente");li.append("elemente");li.extend([1,2,3]); | dic["key"]="value";dic.setdefault(key,value);dic.update(dic2) | s.add("element"); | ||
删除 | li.pop(index);li.remove("element");del li[index]; | dic.pop("key");del dic["key"];dic.popitem();#随机删除 | s.remove("element");s.discard("element");#删除不存在的元素也不会报错s.pop() #随机删除 | ||
修改 | li["element"]=new_element; | dic["key"]="value" | |||
其他 | strip #split join #合并容量里的元素,返回字符串%s %d %f+formatformat_mapreplacecountcapitalize#首字符大写loweruppercenter、ljust、rjust#对齐zfill #用0填充ord("A")chr(65) | a=a+b #合并li.sort()li.reverse()copyextend | fromkeys #快速生成字典itemscopy | intersection & #交集intersection_updateunion | #并集updatedifference - #差集A有,B没有的difference_updatesymmetric_difference ^ #对称差集: A和B互相不在的都打印 |
总结:
1. 字符串和容器都可以计算长度len(), 检查某个元素是否属于(in)
2. 只有列表和字典有copy()。
3. 元组和字符串不可变,其他3个都可变。
4.容器和字符串的对象,都没用__dict__属性。