'''List(列表) 是 Python 中使用最频繁的数据类型。
列表可以完成大多数集合类的数据结构实现。列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套)。
列表是写在方括号 [] 之间、用逗号分隔开的元素列表。
和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。
列表截取的语法格式如下:
变量[开始位置:结束位置] 含头不含尾 可以不指定位置,开始位置不指定表示默认从0开始,
末尾位置不指定,表示截取到最后,两边都不指定,表示截取整个
索引值以 0 为开始值,-1 为从末尾的开始位置
加号 + 是列表连接运算符,星号 * 是重复操作
'''
list = ['abcd', 786, 2.23, 'study', 70.2]
list2 = [123, 'study']
print(list) # 输出完整列表
print(list[0]) # 输出列表第一个元素
print(list[1:3]) # 从第二个开始输出到第三个元素
print(list[2:]) # 输出从第三个元素开始的所有元素
print(list2 * 2) # 输出两次列表
print(list + list2) # 连接列表
#Python 列表截取可以接收第三个参数,参数作用是截取的步长,
以下实例在索引 1 到索引 4 的位置并设置步长为 2(间隔一个位置)来截取字符串
print(list[0:4:2])
#输出:['abcd', 2.23]
#如果第三个参数为负数表示逆向读取
print(list[-1:-4:-2])
#输出:[70.2, 2.23]
列表索引如图所示:
#元组
#元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
#元组中的元素类型也可以不相同:
#元组与字符串类似,可以被索引且下标索引从0开始,-1 为从末尾开始的位置
tuple = ('abcd', 786, 2.23, 'hello', 70.2)
tuple2 = (123, 'world')
print(tuple) # 输出完整元组
print(tuple[0]) # 输出元组的第一个元素
print(tuple[1:3]) # 输出从第二个元素开始到第三个元素
print(tuple[2:]) # 输出从第三个元素开始的所有元素
print(tuple2 * 2) # 输出两次元组
print(tuple + tuple2) # 连接元组
#虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表
tuple3=('abc',list)
print(tuple3[1]) #输出:['abcd', 786, 2.23, 'study', 70.2]
#特殊的元组
tup1 = () # 空元组
tup2 = (20,) # 一个元素,需要在元素后添加逗号
#集合
'''集合(set)是由一个或数个形态各异的大小整体组成的,构成集合的事物或对象称作元素或是成员。
基本功能是进行成员关系测试和删除重复元素。
可以使用大括号 { } 或者 set() 函数创建集合,
注意:创建一个空集合必须用 set() 而不是 { }
创建格式:
parame = {value01,value02,...}
或者
set(value)
'''
suject = {'Math', 'Chinese', 'English', 'Geography', 'Biology', 'Chemistry'}
print(suject) # 输出集合,重复的元素被自动去掉
# 成员测试
if 'English' in suject:
print('English 在集合中')
else:
print('English 不在集合中')
# set可以进行集合运算
a = set('abcdefghk')
b = set('cdrfh')
print(a)
print(a - b) # a 和 b 的差集
print(a | b) # a 和 b 的并集
print(a & b) # a 和 b 的交集
print(a ^ b) # a 和 b 中不同时存在的元素
'''
Dictionary(字典)
字典(dictionary)是Python中另一个非常有用的内置数据类型。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:
字典当中的元素是通过键来存取的,而不是通过偏移存取。类似java的map
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。
创建空字典使用 {} 上面集合中说到不能用{}创建集合,就是因为{}是用来创建字典的
'''
dict = {}
dict['one'] = "Hello"
dict[2] = "World"
tinydict = {'name': 'Tom', 'age': 18, 'address': '火星'}
print(dict['one']) # 输出键为 'one' 的值
print(dict[2]) # 输出键为 2 的值
print(tinydict) # 输出完整的字典
print(tinydict.keys()) # 输出所有键
print(tinydict.values()) # 输出所有值
#据类型的转换,只需要将数据类型作为函数名即可
'''
int(x [,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)将一个整数转换为一个八进制字符串
'''
#数据类型的本质:是一块固定内存的大小
#变量的本质:变量的本质就是固定内存块的别名,
#是内存块的“门牌号”,通过这个门牌号可以找到这块内存