python数据结构及实例
来源:互联网 发布:守望先锋设置优化 编辑:程序博客网 时间:2024/06/06 01:48
Python3中有六个标准的数据类型:
- Numbers(数字)
- String(字符串)
- List(列表)
- Tuple(元组)
- Dictionaries(字典)
- Sets(集合)
数字类型:
Python 3支持int、float、bool、complex。内置的type()函数可以用来查询变量所指的对象类型。
>>> a=1 >>> b=2.2 >>> c=1+2j >>> print(a,b,c) 1 2.2 (1+2j) >>> type(a) <class 'int'> >>> type(b) <class 'float'> >>> type(c) <class 'complex'>
字符串类:
Python 具有单一的字符串类型str,字符串用单引号(‘ ’)或双引号(“ ”)括起来,同时使用反斜杠(\)转义特殊字符。如果不想让反斜杠发生转义,可以在字符串前面添加一个r,表示原始字符串;另外,反斜杠可以作为续行符,表示下一行是上一行的延续。还可以使用"""..."""或者'''...'''跨越多行。字符串可以使用 + 运算符串连接在一起,或者用 * 运算符重复。
>>> str1='python' >>> str2="python3.6" >>> str3=str1+str2 >>>print(str1) python >>> print(str2) python3.6 >>> print(str1+" "+str2) python python3.6Python中的字符串有两种索引方式,第一种是从左往右,从0开始依次增加;第二种是从右往左,从-1开始依次减少。
>>> print(str1[-1]) n >>> print(str1[0]) p与C字符串不同的是,Python字符串不能被改变。向一个索引位置赋值,比如str1[0] = 'm' 会提示错误。
>>> str1[0]='m' Traceback (most recent call last): File "<pyshell#56>", line 1, in <module> str1[0]='m' TypeError: 'str' object does not support item assignment
列表类型:
List(列表) 是 Python 中使用最频繁的数据类型。列表是写在方括号之间、用逗号分隔开的元素列表。列表中元素的类型可以不相同,和字符串一样,列表同样可以被索引和切片,列表被切片后返回一个包含所需元素的新列表。
>>> list1=[1,2,3.0,str1] >>> print(list1) [1, 2, 3.0, 'python'] >>> list2=[str2,'Jason_fu'] >>> print(list2) ['python3.6', 'Jason_fu'] >>> print(list1+list2) [1, 2, 3.0, 'python', 'python3.6', 'Jason_fu']
与字符串不同的是,列表中的元素是可以改变的:
>>> list1[2]='python3.6.0' >>> print(list1) [1, 2, 'python3.6.0', 'python']List内置了有很多方法:append()、pop()等等。
>>> list1.append('new') >>> print(list1) [1, 2, 'python3.6.0', 'python', 'new'] >>> list1.pop(0) 1 >>> print(list1) [2, 'python3.6.0', 'python', 'new']
切片索引及元素遍历:
>>> nums=range(10)>>> print(nums)range(0, 10)>>> print(nums[0:5])range(0, 5)>>> print(nums[0])0>>> for num in nums:... print(num)... 0123456789列表推导:下面是将列表中的每个元素变成它的平方的例子。
nums = range(5)squares = []for x in nums:
此时运行结果为:
[0, 4, 16]
元组类型:
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组是写在小括号之间、用逗号隔开的元素列表。元组中的元素类型也可以不相同。元组与字符串类似,可以被索引且下标索引从0开始,也可以进行截取/切片。可以把字符串看作一种特殊的元组。虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
>>> tuple1=(1,2,3.0,'python') >>> print(tuple1) (1, 2, 3.0, 'python') >>> type(tuple1) <class 'tuple'> >>> tuple2=(list1,tuple1) >>> print(tuple2) ([2, 'python3.6.0', 'python', 'new'], (1, 2, 3.0, 'python'))
字典类型:
字典(dictionary)是Python中非常有用的内置数据类型。字典是一种映射类型(mapping type),它是一个无序的键 : 值对集合。关键字必须使用不可变类型,也就是说list和包含可变类型的tuple不能做关键字。在同一个字典中,关键字还必须互不相同。
>>> dic2={'FCQING':'no1','JJ':'no2'} >>> print(dic2) {'FCQING': 'no1', 'JJ': 'no2'} >>> dic2['FCQING'] 'no1' >>> dic2['kobe']='no3' >>> print(dic2) {'FCQING': 'no1', 'JJ': 'no2', 'kobe': 'no3'}构造函数 dict() 可以直接从键值对中构建字典,如下:
>>> dic3=dict([('fcqing','NO1'),('jj','NO2'),('KOBE','NO3')]) >>> print(dic3) {'fcqing': 'NO1', 'jj': 'NO2', 'KOBE': 'NO3'}字典类型也有一些内置的函数,例如clear()、keys()、values()等。
>>> print(dic3.keys()) dict_keys(['fcqing', 'jj', 'KOBE']) >>> print(dic3.values()) dict_values(['NO1', 'NO2', 'NO3']) >>> dic3.clear() >>> print(dic3) {}
同样,字典也可以for遍历:
dic1 = {'person': 2, 'cat': 4, 'spider': 8} #spider蜘蛛for animal in dic1: legs = dic1[animal] print ('A %s has %d legs' % (animal, legs))运行结果为:
A person has 2 legsA cat has 4 legsA spider has 8 legs使用 items 方法可以获得字典的键和对应的值:
dic1 = {'person': 2, 'cat': 4, 'spider': 8} #spider蜘蛛for animal,legs in dic1.items(): print ('A %s has %d legs' % (animal, legs))字典也可以使用推导方法:
nums = range(5)even_num_to_square = {x: x ** 2 for x in nums if x % 2 == 0}print (even_num_to_square)
集合类型:
集合(set)是一个无序不重复元素的集,与数学中的集合概念是对应的,也可进行相应的集合运算。基本功能是进行成员关系测试和消除重复元素。可以使用大括号或者set()函数创建set集合,注意:创建一个空集合必须用 set() 而不是 { },因为{ }是用来创建一个空字典。
>>> set1={'fcqing','jj','kobe','Jason'} >>> print(set1) {'jj', 'kobe', 'Jason', 'fcqing'} >>> 'jj'in set1 True >>> 'JJ'in set1 False >>> set2=set('welcome to python') >>> set2 {'n', 'p', 'm', 'y', 't', 'l', 'h', 'o', 'c', 'e', 'w', ' '} >>> set3=set('welcome to python3.6.0') >>> set3 {'n', 'p', '6', '.', 'm', 'y', 't', '3', 'l', 'h', '0', 'o', 'c', 'e', 'w', ' '} >>> set3-set2 {'6', '.', '3', '0'} >>> set2&set3 #取交集 {'n', 'p', 'm', 'y', 't', 'w', 'l', 'h', 'o', 'e', 'c', ' '} >>> set2|set3 #取并集 {'n', 'p', 'm', 'y', 't', '3', '0', 'e', 'w', '6', '.', 'l', 'h', 'o', ' ', 'c'} >>> set3^set2#去不同时存在的元素 {'3', '0', '6', '.'}
- python数据结构及实例
- python数据结构及区别
- python urllib2详解及实例
- python urllib2详解及实例
- python urllib2详解及实例
- python urllib2详解及实例
- python urllib2详解及实例
- python urllib2详解及实例
- python urllib2详解及实例
- python urllib2详解及实例
- python urllib2详解及实例
- Hadoop基于文件的数据结构及实例
- Hadoop基于文件的数据结构及实例
- Python基本数据结构 习题及源码
- python数据结构及部分语法笔记
- 数据结构--顺序表定义及python实现
- 数据结构之单链表及python实现
- 数据结构及算法(Python)---单链表
- <媛媛系列课时1>一切学习的底层方法
- 记录数据索引的学习
- 一只程序猿的养成日记 第一章 第十四节 递归和非递归分别实现strlen
- httpClient入门到精通-------doPost
- 算法之插入排序(C++实现)
- python数据结构及实例
- apache一键安装,MSI文件
- httpClient入门到精通-------连接池
- [Unity教程]如何暂停
- 雇佣问题随机排列数组(permuteBySorting)-c++代码实现
- 自动化运维工具-Puppet
- Oracle自增长
- Vue 2.0在IE11中打开项目页面空白的问题
- poj2289 Jamie's Contact Groups(二分答案+最大流)