列表元素排序:
使用列表中的sort方法可以对列表中的元素按照指定规则进行排序,sort方法的语法格式如下:
ls.sort(key=None,reverse=False)
其中,key接收一个函数,通过该函数获取用于排序时比较大小的数据;reverse指定是将列表中的元素按升序(False,默认值)还是按降序(True)排列。


创建元组:
如果使用()创建的元组中只包含单个元素,则需要在这唯一的一个元素后面添加逗号,否则小括号会被系统认为是括号运算符、而不会被认为是在创建元组。
l=(3)
type(l)
Out[100]: int

l=(3,)
type(l)
Out[101]: tuple

 

拼接元组:
虽然元组中的元素值不允许修改,但通过拼接运算可以两个元组连接、生成一个新元组。
>>t1=(1,2,3) #创建元组对象并赋给变量t1
>>t2=('Python','C++') #创建元组对象并赋给变量t2
>>t3=t1+t2 #通过拼接运算“+ ”将t1和t2连接生成一个新的元组对象并赋给t3
>>t3
Out[106]: (1, 2, 3, 'Python', 'C++')

 

 

集合的创建:
可以使用一对大括号{}或set函数创建集合,如果要创建空集合则只能使用set函数。
集合中不能包含有重复值的元素。如果创建集合或向集合中插入元素时,指定的元素具有重复值,则集合会自动过滤掉重复值的元素、使得每种
取值的元素只保留一个。
aset={2,4,2,1}
aset
Out[109]: {1, 2, 4}


插入集合元素:
集合中提供了两种插入元素的方法,分别是add和update。add方法的语法
格式为:
s.add(x)
其作用是把x作为一个新的元素插入到集合s中,其中x必须是一个可哈希
对象。
aset={2,4,2,1}
aset.add([4,6])
aset

Traceback (most recent call last):

  File "<ipython-input-118-480d0d729f02>", line 2, in <module>
    aset.add([4,6])

TypeError: unhashable type: 'list'
因为add方法要求插入到集合中的元素必须是可哈希的,而列表是不可哈希的


aset={2,4,2,1}
aset.add(9)
aset
Out[115]: {1, 2, 4, 9}


update方法的语法格式为:
s.update(x)
其作用是把x拆分成多个元素后再将这多个元素插入到集合中,其中x必
须是一个可迭代对象。
aset={2,4,2,1}
aset.update(range(11,20))
aset
Out[116]: {1, 2, 4, 11, 12, 13, 14, 15, 16, 17, 18, 19}

aset={2,4,2,1}
aset.update('python')
aset
Out[117]: {1, 2, 4, 'h', 'n', 'o', 'p', 't', 'y'}


aset={2,4,2,1}
aset.update(6)
aset

Traceback (most recent call last):

  File "<ipython-input-119-42c7d3954900>", line 2, in <module>
    aset.update(6)

TypeError: 'int' object is not iterable
因为update方法要求传入的参数必须是可迭代的,而整数是不可迭代的。


集合的交集和并集、差集:

交集和并集:

集合中的intersection方法可以用于计算一个集合与另一个集合的交
集,语法格式为:s1.intersection(s2)其作用是计算s1和s2的交集并返回。intersection方法不会修改s1和s2本身的值。
集合中的union方法可以用于计算一个集合与另一个集合的并集,
语法格式为:s1.union(s2)其作用是计算s1和s2的并集并返回。union方法不会修改s1和s2本身的值。
aset=set([1,2,3])
bset=set([33,2])

cset=aset.intersection(bset)
dset=aset.union(bset)

cset
Out[133]: {2}

dset
Out[134]: {1, 2, 3, 33}

差集:
差集是指由包含在s1中但不包含在s2中的元素组成的集合。difference方法不会修改s1和s2本身的值。
aset.difference(bset)
Out[135]: {1, 3}

bset.difference(aset)
Out[136]: {33}


对称差集:
对称差集是指由只包含在s1中或只包含在s2中的元素组成的集合。symmetric_difference方法不会修改s1和s2本身的值。
aset.symmetric_difference(bset)
Out[138]: {1, 3, 33}

bset.symmetric_difference(aset)
Out[139]: {1, 3, 33}


集合的子集和父集:
集合中的issubset方法用于判断一个集合是否是另一个集合的子集,语法格式为:
s1. issubset(s2)
其作用是判断s1是否是s2的子集。如果s1是s2的子集,则返回True;否则,返回False。
{1,2}.issubset({1,2,3})
Out[140]: True


集合中的issuperset方法可以用于判断一个集合是否是另一个集合的父集,语法格式为:
s1.issuperset(s2)
其作用是判断s1是否是s2的父集(即判断s2是否是s1的子集)。如果s1是s2的父集,则返回True;否则,返回False。

{1,2,3,4}.issuperset({1,2,3})
Out[142]: True

{1,2,3}.issuperset({1,2,3})
Out[143]: True


 


字典的创建和初始化:

字典中每个元素键的取值必须唯一(即集合中不能包含键相同的元素)且必须是可哈希类型的数据,但对于每个元素值的取值则没有任何限制。
字典的主要应用是做数据的快速检索。实际使用字典时,将要查询的数据作为键,将其他数据作为值。例如,在进行学生信息管理时,经常要根据学号进行学生信息的查询,此时就可以将学号作为键、而将其他信息作为值。
可以使用一对大括号{}或dict函数创建字典,如果要创建空字典可以使用{}或dict()。

fromkeys方法的语法格式为:
d.fromkeys(seq[, value])
其中,d是一个已创建的字典对象;seq是一个包含了字典所有键名的序列;value是一个可选参数,其指定了各元素的初始值,默认情况下所有元素的值都被赋为None。
d1={}.fromkeys(['sno','name','major'])
d2=dict().fromkeys(['sno','name','major'], 'Unknown')
print('d1的值为:', d1)
print('d2的值为:', d2)
out:
d1的值为: {'sno': None, 'name': None, 'major': None}
d2的值为: {'sno': 'Unknown', 'name': 'Unknown', 'major': 'Unknown'}

提示:如果使用的字典对象中原来已经有其他元素,则
调用fromkeys方法后原有的元素都会被清除。例如,对
于下面的代码:
adict={'aa':10,'bb':32,'cc':89}

adict
Out[160]: {'aa': 10, 'bb': 32, 'cc': 89}

adict.fromkeys(['aa','bb','cc'])
Out[161]: {'aa': None, 'bb': None, 'cc': None}

 

字典元素的修改和插入:

给指定键的元素赋值时,如果该键在字典中已存在,则会将该键对应
的元素值做修改;如果该键在字典中不存在,则会在字典中插入一个
新元素。
另外,也可以使用字典中的update方法一次修改或插入多个元素,
update方法的语法格式为:
d.update(d2) #用另一个字典对象d2的元素修改或插入字典对象d的元素
或d.update(键1=值1, 键2=值2, …, 键N=值N) #用键值列表修改或插入字典对象d的元素

adict={'aa':10,'bb':32,'cc':89}
adict.update(aa=20,bb=45,ee=200)
adict
Out[169]: {'aa': 20, 'bb': 45, 'cc': 89, 'ee': 200}


字典元素的删除:

使用del可以删除某个元素,也可以使用字典中的pop方法删除指定键的元素。pop方法的语法格式为:d.pop(key[, default])
其作用是从字典d中删除键为key的元素并返回该元素的值;如果d中不存在键为key的元素,则返回default参数的值。

adict={'aa':10,'bb':32,'cc':89}
adict.pop('aa')
Out[179]: 10

adict
Out[180]: {'bb': 32, 'cc': 89}

adict.pop('tt',100)
Out[181]: 100
 

 

字典的浅拷贝:

使用字典中的copy方法可以实现一个字典的浅拷贝。copy
方法的语法格式为:d.copy()
其作用是返回一个对字典d进行浅拷贝而得到的新字典。

Python编程基础(中国mooc)4

Python编程基础(中国mooc)4

Python编程基础(中国mooc)4

Python编程基础(中国mooc)4

 

 

字典的深拷贝:

使用copy模块的deepcopy方法可以实现深拷贝,deepcopy方法的
语法格式为: copy.deepcopy(d)
其作用是根据字典d进行深拷贝创建一个新的字典对象并返回。

深拷贝不仅使得原有字典对象和生成的字典对象对应不同的内
存空间,而且使得两个字典对象中的可变类型元素对应不同的
内存空间,从而使得两个字典对象完全独立。
Python编程基础(中国mooc)4

Python编程基础(中国mooc)4

 

 

判断字典中是否存在键及拼接两个字典:

判断字典中是否存在键:
法1:
我们可以使用两种方法判断字典中是否存在某个键。一种
方法是使用字典中的get方法,其语法格式为:d.get(key, default=None)
其作用是从字典d中获取键为key的元素的值并返回。如果在
字典d中不存在键为key的元素,则返回default参数的值(默
认为None)。

adict={'aa':10,'bb':32,'cc':89}

adict.get('aa')
Out[200]: 10

adict.get('dd',100)
Out[201]: 100

法2:
另一种方法是使用成员运算符in。
adict={'aa':10,'bb':32,'cc':89}
'aa' in adict
Out[189]: True

Python编程基础(中国mooc)4


拼接两个字典:
法1:
dMerge=dict(d1,**d2)
法2:
dMerge=d1.copy()
dMerge.update(d2)
其中,d1和d2是待拼接的两个字典,dMerge用于保存拼接后的字典。
adict={'aa':10,'bb':32,'cc':89}
bdict={'dd':100}
dict(adict,**bdict)

Out[197]: {'aa': 10, 'bb': 32, 'cc': 89, 'dd': 100}

Python编程基础(中国mooc)4

 

相关文章:

  • 2021-09-03
  • 2021-06-06
  • 2022-02-22
  • 2021-04-17
  • 2021-08-21
  • 2022-12-23
猜你喜欢
  • 2021-11-22
  • 2021-09-09
  • 2021-04-05
  • 2021-11-07
  • 2021-09-15
  • 2021-08-25
相关资源
相似解决方案