python 序列(字符串、字符串、元组、集合、字典)

2020-03-19  本文已影响0人  Longjune

运行环境:python3.8 Anaconda


字符串

在python中,单个字符就是字符串。
字符串不可改变,使用单引号' ',双引号" ",三引号'" "'(三个单引号)作为界定符。
在需要使用单引号时使用双引号或是使用转移字符表示(\')。
在需要使用反斜杠\ 时,因为反斜杠+后面的字母,会使系统认为你想要引用转义字符,可以在等于号后面加上r/R,表示引用原始字符串。
在需要自由使用单引号和双引号时,可以使用三引号。

>>> print('i'+' am', 'bob'*3)
i am bobbobbob
>>> a='abc''123'
>>> a
'abc123'
>>> str = "Hello world"
>>> "He" in str
True
>>> "Me" not in str
True

\color{blue}{四大天王来咯!}

列表(list)

列表名=[元素1,元素2,元素3……]
所有元素放置于方括号[ ]中,元素间使用逗号‘,’分离,元素可以是任意类型。

>>> a=[1,23,4]
>>> b=a+[5,6,7]
>>> c=a*2
>>> b
[1,23,4,5,6,7]
>>> c
[1,23,4,1,23,4]

因为当列表增加或删除元素时,列表对象会自动进行内存的扩展或收缩,从而保证相邻元素之间没有缝隙。所以应尽量从列表尾部进行元素的追加或删除操作,不然在后续元素索引改变的情况下,你的很多操作都会出错。

元组(tuple)

元组名=(元素1,元素2,元素3……)
所有元素放置于圆括号( )中,元素间使用逗号‘,’分离。若只有一个元素,元素后的逗号不能省略。元素固定不变,但可以是任意类型。

>>> a=(1,) 
>>> a
(1,)
>>> b=(2)
>>> b          #(2)是整形2,但是(2,)就是元组
2
>>> a=(1, 2, 3, 4, 5, 6)
>>> print(a[0], a[3:5])
 1 (4, 5)
>>> a[0]=3 # 修改元组元素的操作是非法的
 Traceback (most recent call last):
   File "<pyshell#21>", line 1, in <module>
     a[0]=3
 TypeError: 'tuple' object does not support item assignment
>>> a=(1,2,3)  
>>> b=('a','b','c')  
>>> c=(a,b)      #将a看作是第一个元素;b是第二个元素
>>> print(c[1][2])     #序列中第一个元素中的第二个小元素
   c
>>> x=(1,2,3)
>>> a,b,c = user    #变量个数要等于元组的长度
>>> a
1

集合(set)

集合名={元素1,元素2,元素3……}
所有元素放置于大括号{ }中元素间使用逗号‘,’分离,其中的元素不允许重复,且只能使用不可变数据(数字、字符串、元组等)。
建立一个空集合必须使用 集合名=set() 而非 集合名={} 。因为{}是用来创建一个空字典。
跟数学上的集合差不多概念(完全可以用数学上的知识进行理解没毛病)

  1. 使用 集合名=set('字符串') 可以将字符串中的各个字母拆成集合,然后去重,并且他会自动从大到小进行排序。
  2. 允许 集合1-集合2 求去除集合1元素后的新集合2,注意只能长的减去短的,不能短减长。
    集合1|集合2 求两集合相加的元素——并集。
    集合1&集合2 求两集合提取的公共元素——交集。
    集合1^集合2 求提取两个集合不同时存在的元素——补集等操作符的使用。
>>> a=set('hallowword')  #将字符串拆成集合后去重、排序
>>> a
{'a', 'd', 'h', 'l', 'o', 'r', 'w'}
>>> b=set('areyouok') 
>>> b
{'a', 'e', 'k', 'o', 'r', 'u', 'y'}
>>> a-b                    # 从a中去除b的元素
{'d', 'h', 'l', 'w'}
>>> a|b                    # a和b的并集
{'a', 'd', 'e', 'h', 'k', 'l', 'o', 'r', 'u', 'w', 'y'}
>>> a&b              #提取 a和b的公共元素(交集)
{'a', 'o', 'r'}
>>> a^b    #提取 a和b中不同时存在的元素(交集的补集,也叫对称差)
{'d', 'e', 'h', 'k', 'l', 'u', 'w', 'y'}

字典(dict)

字典名={'键1':'值1','键2':'值2','键3':'值3'……};键(key),值(value)。
所有元素放置于大括号{ }中,元素间使用逗号‘,’分离,元素形式为“键:值”。

>>> x={'a':1,'b':2,'c':3}
>>> x['b']='10'
>>> x['d']=3
>>> x
{'a': 1, 'b': '10', 'c': 3, 'd': 3}
>>> del x['c']
>>> x
{'a': 1, 'b': '10', 'd': 3}
>>> d={'a':1, 'b':2, 'c':3}
>>> x=d.items()
>>> print(x)
   dict_items([('a',1),('b',2),('c',3)])
>>> list(x)
   [('a',1),('b',2),('c',3)]

上面的过程也可以用类型转换换回,即这样形式的元组列表也可以初始化成字典:

>>> x=[('a',1),( 'b',2),( 'c',3)]
>>> y=dict(x)
>>> print(y)
[('a',1),('b',2),('c',3)]
  1. fromkeys函数用于创建一个新字典
    新字典名=dict.fromkeys(seq, value)
    以序列 seq 中元素做字典的键;value 为字典所有键对应的初始值,可以不写。
>>> a=('name', 'age', 'sex')   
>>> b=dict.fromkeys(a)      #给字典键赋值来自seq(a)
>>> b      #因为仅有键,没有value,所以显示键值为默认值:空None
{'name': None, 'age': None, 'sex': None}
>>> c=dict.fromkeys(a, 1)    #给字典键值对赋值,这里假设都赋1
>>> c
{'name': 1, 'age': 1, 'sex': 1}
  1. format函数将列表合成新字典。
    原理就是每次从name中取一个姓名记为n1,再从tel中取一个号码记为t1,再把n1和t1组成键值对n1:t1,成为字典Tellbook中的一个元素,如此循环,就全部构成了字典的元素。
>>> name=["Bob","Jeny","Holly","Anna","Ai","Green"]
>>> age=[20,16,84,94,52,67]
>>> a={}  #创建一个空字典
>>> for i in range(len(name)):
        x="{}".format(name[i])    #从name中取一个姓名
        y="{}".format(age[i])     #从tel中取一个电话
        a[x]=y    
                      #再把d2这个号码赋值给字典Tellbook的d1键
>>> print(a)
{'Bob': '20', 'Jeny': '16', 'Holly': '84', 'Anna': '94', 'Ai': '52', 'Green': '67'}

这些是我学python时整理的学习笔记,所以如果有出错或者是不完善的地方。
欢迎在评论区指正!

上一篇下一篇

猜你喜欢

热点阅读