python基础数据类型序列-字符串、列表、元组、集合、字典的比较

文章目录

  • 符串、列表、元组、集合、字典对比
  • 数据操作
    • 索引----字符串、列表、元组
    • 切片----字符串、列表、元组
    • 相加/相乘----字符串、列表、元组
      • 相加
      • 相乘
    • 增加值----列表、字典、集合
    • 修改元素----字符串、列表、字典
    • 删除元素 ----列表、集合、字典
    • 排序sorted ----字符串、列表、集合、元组、字典
    • 比较
    • 集合求差集、交集、并集
      • 并集
      • 交集
      • 差集
  • 数据转换:
    • 字典格式的字符串/ json对象转为字典
    • 两个列表/元组/集合 转为字典
    • 字典转为列表/元组/集合
    • 嵌套的列表/元组/集合转为字典

符串、列表、元组、集合、字典对比

字符串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}

排序sorted ----字符串、列表、集合、元组、字典

说明:列表、集合、元组、字典只有元素的类型一致才能排序

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) - - - -

字典格式的字符串/ json对象转为字典

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}

你可能感兴趣的:(总结,python,python,列表,字符串,字典,集合)