二级Python学习笔记(六)

上一篇:二级Python学习笔记(五)

第6章 组合数据类型

6.1 组合数据类型的基本概念

最常用的组合数据类型:集合类型(一个具体的数据类型名称)、序列类型和映射类型(都是一类数据类型的总称)。

集合类型:元素的集合,元素无序,用大括号({})表示,相同元素在集合中唯一存在,不可重复,主要用于元素去重,适合于任何组合数据类型。集合(set)。

集合类型4个操作符,交集(&)、并集(|)、差集 (-)、补集(^)

20180821205408926.png

>>>T = {1010, "1010", 12.3, 1010, 1010}
>>>print(T)
{1010,'1010',12.3}


>>>S = {1010, "1010", 78.9}
>>>T = {1010, "1010", 12.3, 1010, 1010}
>>>S - T
{78.9}
>>>T – S
{12.3}
>>>S & T
{1010,'1010'}
>>>T & S
{1010,'1010'}
>>>S ^ T
{78.9, 12.3}
>>>T ^ S
{78.9, 12.3}
>>>S | T
{78.9, 1010, 12.3,'1010'}
>>>T | S
{1010, 12.3, 78.9,'1010'}


集合类型常用的操作函数或方法:

20180821205527359.png

序列类型:元素向量,元素之间存在先后关系,通过序号访问,元素之间不排他,可以存在相同数值但位置不同的元素。字符串(str)、元组(tuple)、列表(list)。

序列类型通用的操作符和函数:

2018082120581946.png

映射类型:“键-值”数据项的组合,每个元素是一个键值对,元素之间无序,表示为(key, value)。字典(map)。

6.2 列表类型

列表:用中括号([])表示, 也可以通过list(x) 函数将集合或字符串类型转换成列表类型。没有长度限制,属于序列类型。

>>>ls = [1010, "1010", [1010, "1010"], 1010]
>>>ls
[1010,'1010', [1010,'1010'], 1010]
>>>list('列表可以由字符串生成')
['列','表','可','以','由','字','符','串','生','成']
>>>list()
[]


列表的索引:获得列表的一个元素,使用中括号作为索引操作符。

>>>ls = [1010, "1010", [1010, "1010"], 1010]
>>>ls[3]
1010
>>>ls[-2]
[1010,'1010']
>>>ls[5]
Traceback (most recent call last):
File "<pyshell#35>", line 1, in <module>
ls[5]
IndexError: list index out of range


#对列表元素进行遍历操作
>>>ls = [1010, "1010", [1010, "1010"], 1010]
>>>for i in ls:
        print(i*2)
2020
10101010
[1010,'1010', 1010,'1010']
2020


列表的切片:获得列表的一个片段(一个或多个元素)。结果也是列表类型。两种方式:[列表][N: M] 或 [列表][N: M: K]

>>>ls = [1010, "1010", [1010, "1010"], 1010]
>>>ls[1:4]   #从N到M(不包含M)
['1010', [1010,'1010'], 1010]

>>>ls[-1:-3]
[]

>>>ls[-3:-1]
['1010', [1010,'1010']]

>>>ls[0:4:2]    #从N到M(不包含M)以K为步长
[1010, [1010,'1010']]


6.3 列表类型的操作

列表类型通用的操作函数:

111.png

>>>ls = [1010, "1010", [1010, "1010"], 1010]
>>>len(ls)
4

>>>lt = ["Python", ["1010", 1010, [1010, "Python"]]]
>>>len(lt)
2

>>>ls = [1010, 10.10, 0x1010]
>>>min(ls)
10.1

>>>lt = ["1010", "10.10", "Python"]
>>>max(lt)
'Python'

>>>ls = ls + lt
>>>print(ls)
[1010, 10.1, 4112, '1010', '10.10', 'Python']

>>>min(ls)
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
min(ls)
TypeError: '<' not supported between instances of 'str' and 'float'


>>>list("Python")
['P', 'y', 't', 'h', 'o', 'n']

>>>list({"小明", "小红", "小白", "小新"})
['小红', '小明', '小新', '小白']

>>>list({"201801":"小明", "201802":"小红", "201803":"小白"})
['201801','201802','201803']


列表的操作方法:

777.png

>>>lt = ["1010", "10.10", "Python"]
>>>lt.append(1010)
>>>print(lt)
['1010','10.10','Python', 1010]

>>>lt.append([1010, 0x1010])
>>>print(lt)
['1010','10.10','Python', 1010, [1010, 4112]]

>>>lt = ["1010", "10.10", "Python"]
>>>ls = [1010, [1010, 0x1010]]
>>>ls += lt
>>>print(lt)
['1010','10.10','Python', 1010, [1010, 4112]]

>>>lt = ["1010", "10.10", "Python"]
>>>lt.insert(1, 1010)
>>>print(lt)
['1010', 1010,'10.10','Python']

>>>lt = ["1010", "10.10", "Python"]
>>>lt.clear()
>>>print(lt)
[]

>>>lt = ["1010", "10.10", "Python"]
>>>print(lt.pop(1))
10.10
>>>print(lt)
["1010", "Python"]

>>>lt = ["1010", "10.10", "Python"]
>>>lt.remove("10.10")
>>>print(lt)
["1010", "Python"]

>>>lt = ["1010", "10.10", "Python"]
>>>print(lt.reverse())
['Python','10.10','1010']

>>>lt = ["1010", "10.10", "Python"]
>>>ls = lt.copy()
>>>lt.clear() # 清空lt
>>>print(ls)
["1010", "10.10", "Python"]


保留字del对列表元素或片段进行删除:

>>>lt = ["1010", "10.10", "Python"]
>>>del lt[1]
>>>print(lt)
["1010", "Python"]
>>>lt = ["1010", "10.10", "Python"]
>>>del lt[1:]
>>>print(lt)
["1010"]


6.4 字典类型

字典:使用大括号{}建立,每个元素是一个键值对,没有顺序且不能重复,通过字典类型实现映射。{<键1>:<值1>,  … , <键n>:<值n>}

>>>d = {"201801":"小明","201802":"小红","201803":"小白"}
>>>print(d)
{'201801': '小明','201802': '小红','201803': '小白'}


字典的索引:<值> = <字典变量>[<键>]

>>>d = {"201801":"小明","201802":"小红","201803":"小白"}
>>>print(d["201802"])
小红

#利用索引和赋值(=),修改字典中元素
>>>d["201802"] = '新小红'
>>>print(d)
{'201801': '小明','201803': '小白','201802': '新小红'}

#使用大括号可以创建字典,通过索引和赋值增加元素
>>>t = {}
>>>t["201804"] = "小新"
>>>print(d)
{'201804': '小新'}


6.5 字典类型的操作

字典类型通用的操作函数:

444.png

>>>d = {"201801":"小明", "201802":"小红", "201803":"小白"}
>>>len(d)
3

>>>d = {"201801":"小明", "201802":"小红", "201803":"小白"}
>>>min(d)
'201801'
>>>max(d)
'201803'

>>>d = dict()
>>>print(d)
{}


字典的操作方法:

7587.png

>>>d = {"201801":"小明","201802":"小红","201803":"小白"}
>>>d.keys()
dict_keys(['201801','201802','201803'])+
>>>type(d.keys())
<class 'dict_keys'>
>>>list(d.keys())
['201801','201802','201803']

>>>d = {"201801":"小明","201802":"小红","201803":"小白"}
>>>d.values()
dict_values(['小明','小红','小白'])
>>>type(d.values())
<class 'dict_values'>
>>>list(d.values())
['小明','小红','小白']

>>>d = {"201801":"小明", "201802":"小红", "201803":"小白"}
>>>d.items()
dict_items([('201801','小明'), ('201802','小红'),('201803','小白')])
>>>type(d.items())
<class 'dict_items'>
>>>list(d.items())
[('201801','小明'), ('201802','小红'), ('201803','小白')]

>>>d = {"201801":"小明","201802":"小红","201803":"小白"}
>>>d.get('201802')
'小红'
>>>d.get('201804')
>>>d.get('201804','不存在')
'不存在'

>>>d = {"201801":"小明","201802":"小红","201803":"小白"}
>>>d.pop('201802')
'小红'
>>>print(d)
{'201801': '小明','201803': '小白'}
>>>d.pop('201804','不存在')
'不存在'

>>>d = {"201801":"小明", "201802":"小红", "201803":"小白"}
>>>print(d.popitem())
('201803', '小白')
>>>d
{'201801': '小明', '201802': '小红'}

>>>d = {"201801":"小明", "201802":"小红", "201803":"小白"}
>>>d.clear()
>>>print(d)
{}

>>>d = {"201801":"小明", "201802":"小红", "201803":"小白"}
>>>del d["201801"]
>>>print(d)
{'201802': '小红', '201803': '小白'}

>>>d = {"201801":"小明", "201802":"小红", "201803":"小白"}
>>>"201801" in d
True
>>>"201804" in d
False


字典遍历循环对其元素进行遍历:

>>>d = {"201801":"小明", "201802":"小红", "201803":"小白"}
>>>for k in d:
      print("字典的键和值分别是:{}和{}".format(k, d.get(k)))
字典的键和值分别是:201801和小明
字典的键和值分别是:201802和小红
字典的键和值分别是:201803和小白


666

lws博客
评论功能尚未完善
  • 最新评论
  • 总共0条评论
  • 个人开源博客网站 © 2017-2019 李维山博客 版权所有 备案号:冀ICP备18008903号-1
  • 联系邮箱:666@oyhdo.com