字符串str | 列表list | 元组tuple | 集合set | 字典dict |
---|---|---|---|---|
索引、切片、相加和相乘 | 索引、切片、相加和相乘 | 索引、切片、相加和相乘 | - | - |
不可变 | 可变 | 不可变 | 可变 | 可变 |
有序 | 有序 | 有序 | 无序 | 无序 |
- | 值可重复 | 值可重复 | 值不可重复 | key不可重复 |
bool(’’) is False | bool([]) is False | bool(()) is False | bool(set()) is False | bool({}) is False |
排序 | 值同类型可排序 | 值同类型可排序 | 值同类型可排序 | key值同类型可排序 |
- | 元素可以是任意类型 | 元素可以是任意类型 | 元素必须是不可变的:字符串、数字、元组 | key值必须是不可变的:字符串、数字、元组,value任意类型 |
说明:
有序/无序:是否可通过下标访问
可变/不可变:指存储位置不变、type也不变的情况下,值是否可变,可使用id(变量名)来查看存储位置
n个元素索引下标从0依次递增到n-1,或者负数索引从-n到-1
eg:
print("abcd"[1]) #输出结果b
print([1,2,3][0]) #输出结果1
print((1,2,3)[1])#输出结果2
语法:seqname[start : end : step] ,输出子序列
start :默认0,取值包含此位置
end:默认序列长度,取值不包含此位置
step: 间隔几个存储位置取一次元素,默认1,可不写
eg:
print("abcd"[:3:2]) #输出结果“ac”
print([1,2,3][:3:2]) #输出结果[1, 3]
print((1,2,3)[:3:2]) #输出结果(1, 3)
print("ab"+"cd") #输出结果“abcd”
print([1,2,3]+[1]) #输出结果[1, 2, 3, 1]
print((1, 2, 3) + (2,)) #输出结果(1, 2, 3, 2)
print("ab"*2) #输出结果"abab"
print([1,2,3]*2) #输出结果[1, 2, 3, 1, 2, 3]
print((1, 2, 3) * 2) #输出结果(1, 2, 3, 1, 2, 3)
l=[1,2]
l.append("a")
l.append([1.2,3])
print(l) #输出结果[1, 2, 'a', [1.2, 3]]
d={"a":1,3:2}
d['bb']=1
print(d) #输出结果{'a': 1, 3: 2, 'bb': 1}
se={1,2}
se.add("a")
se.add((1,2))
se.update([1,2,4,5])
print(se) #输出结果{(1, 2), 1, 2, 4, 5, 'a'}
s='abc'
s=s.replace("a","AA")
print(s) #输出结果AAbc
l=[1,2,3]
l[0]=101
print(l) #输出结果[101, 2, 3]
d={"a":1,3:2}
d["a"]=101
print(d) #输出结果{'a': 101, 3: 2}
l=[1,5,2]
se={1,7,2}
d={"d":2,"b":1,"a":1}
del l[0] #或者l.remove(1) ,或者l.pop(0)
print(l) #输出结果[5, 2]
del d["a"]
print(d) #输出结果{'d': 2, 'b': 1}
se.remove(1)
print(se) #输出结果{2, 7}
说明:列表、集合、元组、字典只有元素的类型一致才能排序
s="1ab2"
l=[1,5,2]
t=("c","a","b")
se={1,7,2}
d={"d":2,"b":1,"a":1
}print(sorted(s)) #输出结果['1', '2', 'a', 'b']
print(sorted(l)) #输出结果[1, 2, 5]
print(sorted(t)) #输出结果['a', 'b', 'c']
print(sorted(se)) #输出结果[1, 2, 7]
print(sorted(d)) #输出结果['a', 'b', 'd']
说明 :需要对于有序的序列,若顺序不一样比较的结果是false
直接使用 > == < !=符号进行比较
print([1,2,3]==[1,3,2]) #输出结果False
print((1,2)<(2,3)) #输出结果True
{1,7,2}.union({1,3,5,2}) 或者{1,7,2}|{1,3,5,2} #结果{1, 2, 3, 5, 7}
{1,7,2}.intersection({1,3,5,2})或者 {1,7,2}&{1,3,5,2} # 结果{1,2}}
{1,7,2}.difference({1,3,5,2}) 或者{1,7,2}-{1,3,5,2} #结果{7}
原数据类型 | 字符串str | 列表list | 元组tuple | 集合set | 字典dict |
---|---|---|---|---|---|
字符串 | - | list(str) | tuple(str) | set(str) | - |
列表 | list中数据类型是字符串:’’.join(list) list中数据类型不是字符串:’’.join(str(i) for i in list) 或者’’.join(map(str,list)) | - | tuple(list) | set(list) | - |
元组 | 同上 | list(tuple) | - | (tuple) | |
集合 | 同上 | list(set) | tuple(set) | - | |
字典 | json.dumps(dict) | - | - | - | - |
s='{"a":1,"b":2,"c":4}'
d=json.loads(s) #输出结果 {'a': 1, 'b': 2, 'c': 4}
list1=['a',"b"]
list2=[1,2]
print(dict(zip(list1,list2))) #输出结果 {'a': 1, 'b': 2}
d={"a":1,"b":8,"c":4}
print(list(d.keys())) #输出结果 ['a','b','c']
print(list(d.values())) #输出结果 [1,2,3]
说明:嵌套的元素的元素个数必须是两个
list3=[['a',1],['b',2],['d',2]]
print(dict(list3)) #输出结果 {'a': 1, 'b': 2,'d':2}