当前位置:   article > 正文

python基础数据类型序列-字符串、列表、元组、集合、字典的比较_元祖列表集合字典可以是不同类型吗

元祖列表集合字典可以是不同类型吗

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

字符串str列表list元组tuple集合set字典dict
索引、切片、相加和相乘索引、切片、相加和相乘索引、切片、相加和相乘--
不可变可变不可变可变可变
有序有序有序无序无序
-值可重复值可重复值不可重复key不可重复
bool(‘’) is Falsebool([]) is Falsebool(()) is Falsebool(set()) is Falsebool({}) 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
  • 1
  • 2
  • 3

切片----字符串、列表、元组

语法:seqname[start : end : step] ,输出子序列
start :默认0,取值包含此位置
end:默认序列长度,取值不包含此位置
step: 间隔几个存储位置取一次元素,默认1,如果是有-号表示倒序输出
eg:

print("abcd"[:3:2])  #输出结果“ac”
print([1,2,3][::2])  #输出结果[1, 3]
print((1,2,3)[::2])  #输出结果(1, 3)
print((1,2,3)[::-1])  #输出结果(3, 2, 1)
  • 1
  • 2
  • 3
  • 4

相加/相乘----字符串、列表、元组

相加

print("ab"+"cd")   #输出结果“abcd”
print([1,2,3]+[1])   #输出结果[1, 2, 3, 1]
print((1, 2, 3) + (2,))   #输出结果(1, 2, 3, 2)

  • 1
  • 2
  • 3
  • 4

相乘

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)

  • 1
  • 2
  • 3
  • 4

增加值----列表、字典、集合

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'}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

修改元素----字符串、列表、字典

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}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

删除元素 ----列表、集合、字典

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}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

排序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']

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

比较

说明 :需要对于有序的序列,若顺序不一样比较的结果是false
直接使用 > == < !=符号进行比较

print([1,2,3]==[1,3,2])   #输出结果False
print((1,2)<(2,3))   #输出结果True
  • 1
  • 2

集合求差集、交集、并集

并集

{1,7,2}.union({1,3,5,2})  或者{1,7,2}|{1,3,5,2}       #结果{1, 2, 3, 5, 7}
  • 1

交集

{1,7,2}.intersection({1,3,5,2})或者  {1,7,2}&{1,3,5,2}  # 结果{1,2}}
  • 1

差集

{1,7,2}.difference({1,3,5,2})  或者{1,7,2}-{1,3,5,2}  #结果{7}
  • 1

数据转换:

原数据类型字符串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}

  • 1
  • 2
  • 3

两个列表/元组/集合 转为字典

list1=['a',"b"]
list2=[1,2]
print(dict(zip(list1,list2)))   #输出结果 {'a': 1, 'b': 2}

  • 1
  • 2
  • 3
  • 4

字典转为列表/元组/集合

d={"a":1,"b":8,"c":4}
print(list(d.keys()))   #输出结果 ['a','b','c']
print(list(d.values()))  #输出结果 [1,2,3]
  • 1
  • 2
  • 3

嵌套的列表/元组/集合转为字典

说明:嵌套的元素的元素个数必须是两个

list3=[['a',1],['b',2],['d',2]]
print(dict(list3))  #输出结果 {'a': 1, 'b': 2,'d':2}

  • 1
  • 2
  • 3
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/697312
推荐阅读
相关标签
  

闽ICP备14008679号