20170419数据结构

一.列表

list = [val1,val2,val3,val4]

01.列表中的每一个元素都是可变的

  • 列表的插入(新插入的实际位置在指定位置元素之前的位置,若超过列表长度则放列表最后位置):

fruit = [‘pineapple‘,‘pear‘]

#方法一fruit.insert(1,‘grape‘) 直接插入

#方法二fruit[0:2] = [‘Orange‘] 把列表的第0到1位变成orange

print(fruit)

  • 列表的删除

‘‘‘fruit = [‘pineapple‘,‘pear‘,‘grape‘]

#方法一fruit.remove(‘grape‘)

#方法二fruit[0] = ‘Grapefruit‘

#方法三del fruit[0:2]

print(fruit)‘‘‘#列表的删除

  • 列表的排序
‘‘‘num_list = [6,2,7,1,3,5,9]print(sorted(num_list))print(sorted(num_list,reverse = True))‘‘‘#列表的排序

02.列表中的元素是有序的,每一个元素都有一个位置

03.列表可以容纳Python中的任何对象

all_in_list = [

1,#整数

1.0,#浮点数

‘a word‘,#字符串

print(1),#函数

True,#布尔值

[1,2],#列表中套列表

(1,2),#元组

{‘key‘:‘value‘}] #字典

二.字典

dict = {key1:val1,key2:val2}

01.数据以键值对的形式出现

02.逻辑上讲,键不能重复,而值可以重复

03.键(key)是不可变的,无法修改;而值(value)是可变的,可修改为任意对象;键与值不能单独存在

NASDAQ_code = {

‘BIDU‘:‘Baidu‘,

‘SINA‘:‘Sina‘,

‘YOKU‘:‘Youku‘

}

#方法一NASDAQ_code[‘YAHO‘] = ‘Yaho‘ 字典的增加

NASDAQ_code.update({‘FB‘:‘Faceboook‘,‘TSLA‘:‘Tesla‘})#方法二

del NASDAQ_code[‘FB‘]#删除

print(NASDAQ_code[‘TSLA‘])#调用

print(NASDAQ_code)

3.元组

tuple = (val1,val2,val3,val4)

01.元组是一个稳固的列表,是不可修改的

02.元组不可修改,但可以被索引,方法和列表一样

letters = (‘a‘,‘b‘,‘c‘,‘d‘,‘e‘,‘f‘,‘g‘)

print(letters[0])

4.集合

set = {val1,val2,val3,val4}

01.集合中的元素是无序的、不重复的任意对象

02.通过集合判断数据的从属关系,也可通过集合把数据结构中重复的元素减掉

03.集合不能被切片,也不能被索引

04.可以做集合运算,集合元素可以被添加和删除

a_set = {1,2,3,4}

a_set.add(5)#增加

a_set.discard(4)#删除

print(a_set)

时间: 2024-10-23 16:26:33

20170419数据结构的相关文章

【数据结构】之散列链表(Java语言描述)

散列链表,在JDK中的API实现是 HashMap 类. 为什么HashMap被称为"散列链表"?这与HashMap的内部存储结构有关.下面将根据源码进行分析. 首先要说的是,HashMap中维护着的是一个数组: transient Node<K,V>[] table; ,数组中的每个元素都是一个 Node 对象.这里的Node是HashMap的一个内部类,代码如下: static class Node<K,V> implements Map.Entry<

旧题新做:从idy的视角看数据结构

“今天你不写总结……!!!” 额…… 还是讲我的吧.这些考试都是idy出的题. 20170121:DFS序. ST表.线段树练习 这是第一次考数据结构. Problem 1. setsum 1 second 给你一个长度为N 的整数序列,支持两种操作: • modity l r val 将区间[l,r] 中的所有数修改为val • query l r 询问区间[l,r] 所有数的和 分析:最简单的线段树,区间更改区间求和.但注意是更改,不是添改,sum与flag需同时覆盖. Problem 2.

数据结构Set和Map

一.数据结构 Set 集合的基本概念:集合是由一组无序且唯一(即不能重复)的项组成的.这个数据结构使用了与有限集合相同的数学概念,应用在计算机的数据结构中.  特点:key 和 value 相同,没有重复的 value.ES6 提供了数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. 1. 如何创建一个 Set const s = new Set([1, 2, 3]); 2.属性 console.log(s.size); // 3 3.Set 类的方法 --set.add(v

数据结构基本概念

什么是数据结构 "数据结构是数据对象,以及存在于该对象的实例和组成实例的数据元素之间的各种联系.这些联系可以通过定义相关的函数来给出"--Sartaj Sahni,<数据结构.算法与应用> "数据结构是ADT(抽象数据类型Abstract Data Type)的物理实现."--Clifford A.Shaffer,<数据结构与算法分析> "数据结构(data structture)是计算机中存储.组织数据的方式.通常情况下,经i想你

分布式缓存技术redis学习系列(二)——详细讲解redis数据结构(内存模型)以及常用命令

Redis数据类型 与Memcached仅支持简单的key-value结构的数据记录不同,Redis支持的数据类型要丰富得多,常用的数据类型主要有五种:String.List.Hash.Set和Sorted Set. Redis数据类型内存结构分析 Redis内部使用一个redisObject对象来表示所有的key和value.redisObject主要的信息包括数据类型(type).编码方式(encoding).数据指针(ptr).虚拟内存(vm)等.type代表一个value对象具体是何种数

【Python&amp;数据结构】 抽象数据类型 Python类机制和异常

这篇是<数据结构与算法Python语言描述>的笔记,但是大头在Python类机制和面向对象编程的说明上面.我也不知道该放什么分类了..总之之前也没怎么认真接触过基于类而不是独立函数的Python编程,借着本次机会仔细学习一下. 抽象数据类型 最开始的计算机语言,关注的都是如何更加有效率地计算,可以说其目的是计算层面的抽象.然而随着这个行业的不断发展,计算机不仅仅用于计算,开发也不仅只关注计算过程了,数据层面的抽象也变得同样重要.虽然计算机语言一开始就有对数据的抽象,但是那些都只是对一些最基本的

深入浅出分析MySQL索引设计背后的数据结构

在我们公司的DB规范中,明确规定: 1.建表语句必须明确指定主键 2.无特殊情况,主键必须单调递增 对于这项规定,很多研发小伙伴不理解.本文就来深入简出地分析MySQL索引设计背后的数据结构和算法,从而可以帮你释疑如下问题: 1.为什么innodb表需要主键? 2.为什么建议innodb表主键是单调递增? 3.为什么不建议innodb表主键设置过长? B-tree(多路搜索树,并不是二叉的)是一种常见的数据结构.使用B-tree结构可以显著减少定位记录时所经历的中间过程,从而加快存取速度.B通常

数据类型和常用数据结构

1.数据类型 几乎是所有的程序设计语言都会讲到数据类型的概念.简单的说,数据类型就是一个值的集合及在这些值上定义的一系列操作的总称.例如:对于C语言的整数类型,其有一定的取值范围,对于整数类型还定义了加法.减法.乘法.除法和取模运算等操作. 按照数据类型的值是否可以分解,数据类型可以分为基本数据类型和聚合数据类型. *基本数据类型:其值不能进一步分解,一般是程序设计语言自身定义的一些数据类型,例如C语言中.字符型.浮点型等. *聚合数据类型:其值可以进一步分解为若干分量,一般是用户自定义的数据类

第3章 文件I/O(3)_内核数据结构、原子操作

3. 文件I/O的内核数据结构 (1) 内核数据结构表 数据结构 主要成员 文件描述符表 ①文件描述符标志 ②文件表项指针 文件表项 ①文件状态标志(读.写.追加.同步和非阻塞等状态标志) ②当前文件偏移量 ③i节点表项指针 ④引用计数器 i节点 ①文件类型和对该文件的操作函数指针 ②当前文件长度 ③文件所有者 ④文件所在设备.文件访问权限 ⑤指向文件数据在磁盘块上所在位置的指针等. (2)3张表的关系 4. 文件的原子操作 (1)文件追加 ①打开文件时使用O_APPEND标志,进程对文件偏移量