Python基础数据类型下部
前面我们主要了解了,Python六个标准数据类型中的 不可变数据 Number、String、Tuple;接下来我们学习后面三个标准数据类型,可变数据 List、Dictionary、Set;
List (列表)
List(列表)是Python中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现,列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
列表是写在方括号[]之间、用逗号分隔开的元素列表;
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的心列表。
列表截取的语法格式如下:
1 | 变量[头下标:尾下标] |
索引值以0为开始值,-1位从末尾的开始位置
加号+是列表连接运算符,星号*是重复操作。如下实例:
1 | #!/bin/bash/python3 |
以上代码输出结果:
1 | C:\Users\User\Anaconda3\python.exe "D:/Pycharm job/列表截取.py" |
与Python字符串不一样的是,列表中的元素是可以改变的:
实例:
1 | 1,2,3,4,5,6] a = [ |
List内置有很多方法,例如append()、pop()等等,这在后面会有讲述。
注意:
- List卸载方括号之间,元素用逗号隔开;
- 和字符串一样,list可以被索引和切片。
- List可以使用+操作符进行拼接。
- List中的元素是可以改变的。
Set(集合)
集合(set)是一个无序不重复的元素的序列。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号{}或者set()函数创建集合,注意:创建一个空集合必须用set()而不是{},因为{}是用来创建一个空字典的。
创建格式:
1 | #!/bin/bash/python3 |
实例:
1 | #!/bin/bash/ppython3 |
上述代码输出结果:
1 | C:\Users\User\Anaconda3\python.exe "D:/Pycharm job/set集合.py" |
Dictionary (字典)
字典(Dictionary)是Python中另一个非常有用的内置数据类型。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典”{}”标识,他是一个无序的键(key):值(value)对组合。
键(Key)必须使用不可变类型,
在同一字典中,键(key)必须是唯一的。
实例:__
1 | #!/bin/bash/python3 |
以上代码输出结果:
1 | C:\Users\User\Anaconda3\python.exe "D:/Pycharm job/字典.py" |
构造函数dict()可以直接键值对序列中构建字典如下:
实例:
1 | >>>dict([('Runoob', 1), ('Google', 2), ('Taobao', 3)]) |
另外,字典类型也有一些内置的函数,例如clear()、keys()、values()等。
注意:
- 字典是一种映射类型,它的元素是键值对。
- 字典的关键字必须为不可变类型,且不能重复。
- 创建空字典使用 {}。
Python数据类型转换
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可。
以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。
函数 | 描述 |
---|---|
int[,base] | 将X转换为一个整数 |
float(x) | 将x转换到一个浮点数 |
complex(real[.imag]) | 创建一个复数 |
str(x) | 将对象x转换为字符串 |
repr(x) | 将对象x转换为表达式字符串 |
eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s) | 将序列s转换为一个元组 |
list(s) | 将序列s转换为一个列表 |
set(s) | 转换为可变集合 |
dict(d) | 创建一个字典,d必须是一个序列(key,value)元组。 |
frozenset(s) | 转换为不可变的集合 |
chr(x) | 将一个整数转换为一个字符 |
ord(x) | 将一个字符转换为他的整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |
Author: focusshell
Link: http://focusshell.github.io/2018/08/17/Day-5-Python基础数据类型下部/
Copyright: All articles in this blog are licensed under CC BY-NC-SA 3.0 unless stating additionally.