#! usr/bin/env python
# _*_ coding:utf-8 _*_ from random import randint '''
一、list的增删改查
1、list.append(x):把一个元素添加到列表的结尾。
2、list.extend(L):将一个给定列表中的所有元素都添加到另一个列表中。
3、list.insert(i, x):在指定位置插入一个元素。第一个参数是准备插入到其前面的那个元素的索引,例如 a.insert(0, x) 会插入到整个列表之前。
4、list.remove(x):删除列表中值为 x 的第一个元素。如果没有这样的元素,就会返回一个错误。
5、list.pop([i]):从列表的指定位置删除元素,并将其返回。如果没有指定索引,a.pop() 返回最后一个元素。
元素随即从列表中被删除(方法中 i 两边的方括号表示这个参数是可选的,而不是要求你输入一对方括号,你会经常在Python 库参考手册中遇到这样的标记)。
6、list.clear():从列表中删除所有元素。相当于 del a[:]。
7、list.index(x):返回列表中第一个值为 x 的元素的索引。如果没有匹配的元素就会返回一个错误。
8、list.count(x):返回 x 在列表中出现的次数。
9、list.sort():对列表中的元素就地进行排序。
10、list.reverse():就地倒排列表中的元素。
11、list.copy():返回列表的一个浅拷贝。等同于 a[:]。 12、列表推导式:squares = [x**2 for x in range(10)]
列表推导式由包含一个表达式的括号组成,表达式后面跟随一个 for 子句,之后可以有零或多个 for 或 if 子句。
结果是一个列表,由表达式依据其后面的 for 和 if 子句上下文计算而来的结果构成。 例如,如下的列表推导式结合两个列表的元素,如果元素之间不相等的话: >>> [(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
''' list1 = []
list1.append(10)
list1.append(20) list2 = ['a','b','a','c']
list1.extend(list2)
list1.insert(1,8)
print(list1.index('a'))
print(list1.count('a'))
list2.sort()
list1.reverse()
print(list1.pop(-2))
print(list1)
print(list2)
print(list1) list3 = [x**2 for x in range(10)]
print(list3) list4 = [(x,y) for x in [1,2,3] for y in [3,1,4] if x != y]
print(list4) '''
二、元组
1、t = 12345, 54321, 'hello!' 是 元组封装 (tuple packing)的一个例子:值 12345 , 54321 和 'hello!' 被封装进元组。
其逆操作可能是这样:
>>> x, y, z = t 三、集合
1、Python 还包含了一个数据类型 —— set (集合)。集合是一个无序不重复元素的集。基本功能包括关系测试和消除重复元素。
集合对象还支持 union(联合),intersection(交),difference(差)和 sysmmetric difference(对称差集)等数学运算。 大括号或 set() 函数可以用来创建集合。注意:想要创建空集合,你必须使用 set() 而不是 {}。后者用于创建空字典 四、字符串、列表、元组、字典之间转换
''' t = 1245,45322,'hello'
print(t) basket = {'apple','orange','pear','banana','apple','orange'}
print(basket)
print('orange' in basket)
print('sfdsf' in basket) a = set('abracadabra')
print(a)
运行结果:{'c', 'b', 'a', 'd', 'r'}
b = set('alacazam')
c = set(['cat','dog','animal','fish','dog'])
#交集
print(a & b) #并集
print(a | b) #差集letters in a but not in b print(a - b) #异或 letters in a or b but not both print(a ^ b) #集合推导式,类似于列表推导式
a = {x for x in 'abdgfdg' if x not in 'abc'}
print(a) '''
一、字典
对一个字典执行 list(d.keys()) 将返回一个字典中所有关键字组成的无序列表(如果你想要排序,只需使用 sorted(d.keys()) )。
[2] 使用 in 关键字(指Python语法)可以检查字典中是否存在某个关键字(指字典)。 dict() 构造函数可以直接从 key-value 对中创建字典: '''
tel = {}
tel['jack'] = 4098
tel['yuehan'] = 9527
print(tel) listDict1 = [('name','旺旺'),('age',18),('sex','man')]
print(listDict1)
a = dict(listDict1)
print(sorted(a.keys())) print(dict(sape=4139, guido=4127, jack=4098)) #字典推导式
dict1 = {x:x**2 for x in range(10)}
print(dict1) '''
一、循环技巧
1、enumerate():在序列中循环时,索引位置和对应值可以使用 enumerate() 函数同时得到
2、zip():同时循环两个或更多的序列,可以使用 zip() 整体打包:
3、reversed():
4、sorted():
sort是容器的函数:sort(cmp=None, key=None, reverse=False)
sorted是python的内建函数:sorted(iterable, cmp=None, key=None, reverse=False) 5、format():格式化函数
''' #字典循环中,关键字和对应的值可以使用item()方法同时解读出来
knights = {'name':'旺旺','age':18,'sex':'man'} for k,v in knights.items():
print(k,v) for k,v in enumerate(['test','document','java','script']):
print(k,v) questions = ['name', 'quest', 'favorite color']
answers = ['lancelot', 'the holy grail', 'blue'] for q,a in zip(questions,answers):
print('What is your {0}? It is {1}.'.format(q,a)) for i in reversed(range(1,10,2)):
print(i) for i in sorted(range(1,10,2),reverse=True):
print(i) words = ['cat', 'window', 'defenestrate']
for w in words[:]:
if len(w) > 6:
words.insert(0,w)
print(words)

001、Python数据结构的更多相关文章

  1. python数据结构与算法

    最近忙着准备各种笔试的东西,主要看什么数据结构啊,算法啦,balahbalah啊,以前一直就没看过这些,就挑了本简单的<啊哈算法>入门,不过里面的数据结构和算法都是用C语言写的,而自己对p ...

  2. python数据结构与算法——链表

    具体的数据结构可以参考下面的这两篇博客: python 数据结构之单链表的实现: http://www.cnblogs.com/yupeng/p/3413763.html python 数据结构之双向 ...

  3. python数据结构之图的实现

    python数据结构之图的实现,官方有一篇文章介绍,http://www.python.org/doc/essays/graphs.html 下面简要的介绍下: 比如有这么一张图: A -> B ...

  4. Python数据结构与算法--List和Dictionaries

    Lists 当实现 list 的数据结构的时候Python 的设计者有很多的选择. 每一个选择都有可能影响着 list 操作执行的快慢. 当然他们也试图优化一些不常见的操作. 但是当权衡的时候,它们还 ...

  5. Python数据结构与算法--算法分析

    在计算机科学中,算法分析(Analysis of algorithm)是分析执行一个给定算法需要消耗的计算资源数量(例如计算时间,存储器使用等)的过程.算法的效率或复杂度在理论上表示为一个函数.其定义 ...

  6. Python数据结构与循环语句

    # Python数据结构与循环语句:   首先编程是一项技能,类似跑步,期初不必在意细节,能使用起来就行,等学的游刃有余了再回过头来关注细节问题也不迟.  关于买书: 学会python之后,才需要买书 ...

  7. python数据结构之栈与队列

    python数据结构之栈与队列 用list实现堆栈stack 堆栈:后进先出 如何进?用append 如何出?用pop() >>> >>> stack = [3, ...

  8. python数据结构之树和二叉树(先序遍历、中序遍历和后序遍历)

    python数据结构之树和二叉树(先序遍历.中序遍历和后序遍历) 树 树是\(n\)(\(n\ge 0\))个结点的有限集.在任意一棵非空树中,有且只有一个根结点. 二叉树是有限个元素的集合,该集合或 ...

  9. Python数据结构之四——set(集合)

    Python版本:3.6.2  操作系统:Windows  作者:SmallWZQ 经过几天的回顾和学习,我终于把Python 3.x中的基础知识介绍好啦.下面将要继续什么呢?让我想想先~~~嗯,还是 ...

  10. Python数据结构之单链表

    Python数据结构之单链表 单链表有后继结点,无前继结点. 以下实现: 创建单链表 打印单链表 获取单链表的长度 判断单链表是否为空 在单链表后插入数据 获取单链表指定位置的数据 获取单链表指定元素 ...

随机推荐

  1. 【Java】运算符(算术、赋值、比较(关系)、逻辑、条件、位运算符)

    运算符 文章目录 运算符 1. 算术运算符 2. 赋值运算符 3. 比较运算符 4. 逻辑运算符 5. 条件运算符 6. 位运算符 7. 运算符优先级 8. 运算符操作数类型说明 9.code 算术运 ...

  2. ps的参数解释

    [root@bogon ~]# ps axuUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND user启动进程的用户 pid  表示进程标志 ...

  3. 利用Python-docx 读写 Word 文档中的正文、表格、段落、字体等

    前言: 前两篇博客介绍了 Python 的 docx 模块对 Word 文档的写操作,这篇博客将介绍如何用 docx 模块读取已有 Word 文档中的信息. 本篇博客主要内容有: 1.获取文档的章节信 ...

  4. 【DBA】非常好的一个脚本网站

    今天无意间发下了一个特别好的一个oracle脚本的网站.网站地址如下: https://oracle-base.com/dba/scripts 里面都是一些非常实用的脚本.

  5. P1140 相似基因(字符串距离,递推)

    题目链接: https://www.luogu.org/problemnew/show/P1140 题目背景 大家都知道,基因可以看作一个碱基对序列.它包含了44种核苷酸,简记作A,C,G,TA,C, ...

  6. os-Bytes环境变量劫持

    信息收集 netdiscovery -i eth0 nmap -sV -sC 192.168.43.74 -oA os-Bytes gobuster -u 192.168.43.74 -w /usr/ ...

  7. 通过logmnr找到被修改前的存储过程

    1.找到存储过程被修改时的归档日志 SELECT NAME FROM V$ARCHIVED_LOG WHERE FIRST_TIME BETWEEN TO_DATE('20191118080000', ...

  8. 通过SE14重建数据库表

    通过程序中的SQL语句向数据库表中插入的内容,系统无法转换,并且已经存在于数据库表中,那么当对该表进行保存数据的修改时,可能会导致该表从数据库中的删除. 举了例子:(完全是为了方便理解) SAP系统, ...

  9. OLE NumberFormat

    设置单元格的数字格式, $3.00 想搞出这样的格式,在VBA里的格式定义如下 $#,##0.00;-$#,##0.00 可是在abap里,就是不行.最后尝试了很多次,原来在在$前面加\变成\$#,# ...

  10. 机器学习7-模型保存&无监督学习

    模型保存和加载 sklearn模型的保存和加载API from sklearn.externals import joblib 保存:joblib.dump(rf, 'test.pkl') 加载:es ...