列表

  • 列表:一个值,包含多个字构成的序列,用[ ]括起来,[]是一个空列表,不包含任何值,类似于空字符串,负数下标表示从后边开始,-1表示列表最后一个下标,它是一种可变的数据类型,值可以添加、删除或改变;
  • +用于连接两个列表并得到一个新列表;*用于一个列表和一个整数,实现列表的复制;del将删除列表中下标处的值;innot in用于确定一个值是否在列表中;
  • 多重赋值技巧:变量数目和列表长度必须严格相等,eg;
cat = ['fat', 'black', 'loud']
size, color, disposition = cat
  • sort()方法对列表中排序时需注意的3件事:

    • sort()方法当场对列表排序;
    • 不能对既有数字又有字符串值的列表排序;
    • 对字符串排序时,使用"ASCII 字符顺序";
  • sort()sorted()方法的比较:sort(key = None, reverse = False)就地改变列表,sorted(iterable, key = None, reverse = False)返回新的列表,对所有可迭代对象均有效;
supplies = ['pens', 'staplers', 'flame-throwers', 'binders']
supplies.sort()
print(supplies)
supplies = ['pens', 'staplers', 'flame-throwers', 'binders']
sortedSupplies = sorted(supplies)
print(supplies)
print(sortedSupplies)

  • \:续行字符;
  • 元组:使用( ),和字符串一样是不可变的,值不能被修改、添加或删除;
  • 序列与元组的转换:list()将元组转换为序列,tuple()将序列转换为元组;
#序列转元组
pets = ['K', 'M', 'N']
print(tuple(pets))
#元组转序列
pets = ('K', 'M', 'N')
print(list(pets))

  • 列表的引用:列表赋给一个变量时,不直接保存到变量,而是将列表的“引用”赋给了该变量,所以当改变变量的值时,原列表的值也要随着改变;
>>> spam = [0, 1, 2, 4, 5]
>>> chees = spam
>>> cheese[1] = 'Hello'
>>> spam
[0, 'Hello', 2, 4, 5]
>>> cheese
[0, 'Hello', 2, 4, 5]
  • copy()deepcopy():处理列表或序列时,若不希望改动影响原来的列表或字典,则使用copy()函数,若是要复制的列表中包含了列表,则使用deepcopy()代替;

字典和结构化数据

  • 字典:{key:value}
  • 字典与列表:列表是有序的,而字典是无序的,因此字典不可像列表一样切片;
  • keys()values()items():分别对应于字典的键、值和键-值对;
  • get(要取得其值的键, 键不存在时返回的备用值)
>>> picnicItems = {'apples':5, 'cpus':2}
>>> 'I am bringing ' + str(picnicItems.get('cups', 0) + ' cups.'
I am bringing 2 cups.
>>> 'I an bringing ' + str(picnicItems.get('eggs', 0) + ' cups.'
I am bringing 0 eggs.
  • setdefault(要检查的键, 检查的键不存在时设置的值):第一次调用之后即存在,再次调用不会改变第一次赋给的键值;
>>> spam = {'name':'Pooka', 'age':5}
>>> spam.setdefault('color', 'black')
'black'
>>> spam
{'color':'black', 'age':5, 'name':'Pooka'}
>>> spam.setdefault('color', 'white')
'black'
>>> spam
{'color':'black', 'age':5, 'name':'Pooka'}
  • 集合:无序、不重复的数据组合,主要作用为:

    • 去重, 把一个列表变成集合,就自动去重了;
    • 关系测试,测试两组数据之前的交集、差集、并集等关系;
  • 格式输出:pprint()pformat()
import pprint
info = {'name':'K', 'age': 23}
pprint.pprint(info)
#下列这句和上句结果相同
#print(pprint.pformat(info))

  • 嵌套的字典和列表
#嵌套的字典和列表
allGuests = {'Alice':{'apple':4, 'pretzels':19},
             'Bob':{'apple':3, 'sandwiches':4},
             'Carol':{'cups':5, 'apple pies':4}}
def totalBrought(guests, item):
    numberBrought = 0;
    for k, v in guests.items():
        numberBrought += v.get(item, 0)
    return numberBrought

print('Apple = ' + str(totalBrought(allGuests, 'apple')))

字符串操作

  • 字符串既可以用单引号,也可以用双引号开始和结束;
  • 转义字符:\
  • 原始字符串:在字符串开始的引号前加上r,原始字符串完全忽略所有的转义字符,打印出字符串中所有的倒斜杠;
>>> print(r'That is Carol\'s cat.')
That is Carol\'s cat.
  • 多行字符串:多行字符串的起止是3个单引号或3个双引号,三重引号之间的所有引号、制表符或换行,都被认为是字符串的一部分,此时缩进规则不适用;
>>> print('''Dear Alice,
Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob''')
Dear Alice,
Eve's cat has been arrested for catnapping, cat burglary, and extortion.

Sincerely,
Bob
  • 文本对齐:左对齐ljust(),右对齐rjust(),居中center()
  • 向计算机剪贴板发送或接受文本,需要用到pyperclip模块中的copy()paste()函数;
  • 字符串的格式化

欢迎关注微信公众号:村雨1943;创作不易,未经同意,转载请注明出处~

Python知识点总结篇(二)的更多相关文章

  1. [Python学习]错误篇二:切换当前工作目录时出错——FileNotFoundError: [WinError 3] 系统找不到指定的路径

    REFERENCE:<Head First Python> ID:我的第二篇[Python学习] BIRTHDAY:2019.7.13 EXPERIENCE_SHARING:解决切换当前工 ...

  2. 零基础Python知识点回顾(二)

    开始了,继续说!字符串替换,就是预留着空间,后边再定义要填上什么,这种叫字符串格式化,其有两种方法: %    和 format %s  就是一个占位符,这个占位符可以被其它的字符串代替 >&g ...

  3. Python知识点总结篇(五)

    软件目录结构规范 目标: 提高可读性: 提高可维护性: 常见结构 Demo/ |-- bin/ #存放项目的一些可执行文件 | |-- demo #可执行程序,启动demo调main.py | |-- ...

  4. Python知识点总结篇(三)

    文件操作 对文件操作流程 打开文件,得到文件句柄并赋值给一个变量: 通过句柄对文件进行操作: 关闭文件: with:自动关闭文件: with open('log', 'r') as f: ... 文件 ...

  5. Python知识点总结篇(一)

    Python基础 变量 变量类型: 1.数字型 整形:int: 浮点型:float: 布尔型:bool,True和False: 复数型:complex: 2.非数字型 字符串: 列表: 元祖: 字典: ...

  6. python之scrapy篇(二)

    一.创建工程 scarpy startproject xxx 二.编写iteam文件 # -*- coding: utf-8 -*- # Define here the models for your ...

  7. Python知识点总结篇(四)

    递归 特性 必须有明确的结束条件: 每进入深一层递归,问题规模比上层应有所减少: 递归效率不高,层次更多会导致栈溢出: def calc(n): print(n) if n // 2 > 0: ...

  8. python机器学习实战(二)

    python机器学习实战(二) 版权声明:本文为博主原创文章,转载请指明转载地址 http://www.cnblogs.com/fydeblog/p/7159775.html 前言 这篇noteboo ...

  9. Python 基础 面向对象之二 三大特性

    Python 基础 面向对象之二 三大特性 上一篇主要介绍了Python中,面向对象的类和对象的定义及实例的简单应用,本篇继续接着上篇来谈,在这一篇中我们重点要谈及的内容有:Python 类的成员.成 ...

随机推荐

  1. Django 基础篇(二)视图与模板

    视图 在django中,视图对WEB请求进行回应 视图接收reqeust对象作为第一个参数,包含了请求的信息 视图就是一个Python函数,被定义在views.py中 #coding:utf- fro ...

  2. 中心极限定理(Central Limit Theorem)

    中心极限定理:每次从总体中抽取容量为n的简单随机样本,这样抽取很多次后,如果样本容量很大,样本均值的抽样分布近似服从正态分布(期望为  ,标准差为 ). (注:总体数据需独立同分布) 那么样本容量n应 ...

  3. linux命令之------部分细节点

    创建文件夹/文件命令以及清除模式 mkdir +文件夹名字 touch +文件名字 rm -fr 删除文件,文件夹 -f强制删除 -r是递归 查询linux下所有启动的线程: ps -ef|grep ...

  4. 【POJ2676】Sudoku

    本题传送门 本题知识点:深度优先搜索 + 回溯 问题就是要让我们解决一个数独问题.如果你懂得怎么玩数独的话,那就很自然想到用暴力搜索去做题.(比如我就不会,所以先WA了一发quq) 数独符合三个条件 ...

  5. 利用iptables做端口转发

    需求背景: A与C不在同一网段无法直接访问,而A和B,C和B可以互通.现需要A借助B访问C的3306端口. 解决方案: 利用iptables配置规则,实现端口转发. 具体操作: 在B上开启端口转发功能 ...

  6. Redis简介及其安装

    1.Redis NoSQL (Not noly SQL)不仅仅是SQL 属于非关系型数据库:Redis就属于非关系型数据库 传统的Mysql ,oracle ,sql server 等 都是关系型数据 ...

  7. 记一次netty http server给客户端返回reset包排除

    类似文章:解决用netty去做web服务时,post长度过大的问题 现象:当客户端给server发送的请求体较大时,服务直接给客户端返回reset包. tcpdump: 应用还没有完全收上去,就clo ...

  8. Spark2.x(六十三):(Spark2.4)Driver如何把Task(闭包等)分配给Executor

    在Spark中一个appliation可能包含多个job,每个job都是由SparkContext#runJob(...)触发的,一个Job下包含1个或多个Stage,Job的最后一个stage为Re ...

  9. SNF快速开发平台2019-用户安全控制-权限管理模型实践-权限都在这里

    1.1    是否保存密码 勾选记住密码后,再次开启程序用户密码不需要再次输入,直接显示在密码输入框内,方便快捷. 图 4.1‑1 记住密码的登录页面框 1.2    是否自动登录 勾选自动登录后,再 ...

  10. canvas笔记备忘

    备忘 1. canvas标签的宽和高设置是标签属性设置, 不是 css 属性设置. 如果用 css 属性设置大小, canvas 会被拉伸. 标签属性例如: class, id, style, wid ...