python 列表、元组、字符串、字典、集合、return等梳理
有必要对这些数据类型及操作做下梳理:
1.列表:增删改查
a.查找:
>>> names=["zhang","wang","li","zhao"]
#列表天生具有下标,基于下标0,1,2,...进行查找
>>> names[1]
'wang'
#列表的切片,即也是基于下标进行操作
>>> names[1:3]
['wang', 'li']
>>> names[-1:]
['zhao']
>>> names[:3]
['zhang', 'wang', 'li']
>>> names[1:]
['wang', 'li', 'zhao']
#基于列表中的值找下标
>>> print(names.index('li'))
2
>>> print(names[names.index('li')])
li
#基于for循环查找列表值
>>> for i in names:
... print(i)
...
zhang
wang
li
zhao
b.修改
>>> names=["zhang","wang","li","zhao"]
>>> names.append("Sun")
>>> names
['zhang', 'wang', 'li', 'zhao', 'Sun']
>>> names.insert(1,'qian')
>>> names
['zhang', 'qian', 'wang', 'li', 'zhao', 'Sun']
>>> names[2] = 'gao'
>>> names
['zhang', 'qian', 'gao', 'li', 'zhao', 'Sun']
c.删除
>>> names
['zhang', 'qian', 'gao', 'li', 'zhao', 'Sun']
>>> names.remove('zhang')
>>> names
['qian', 'gao', 'li', 'zhao', 'Sun']
>>> del names[1]
>>> names
['qian', 'li', 'zhao', 'Sun']
>>> names.pop()
'Sun'
>>> names.pop(1)
'li'
>>> names
['qian', 'zhao']
d.增加
>>> names
['qian', 'zhao']
>>> names.append('Sun') #追加
>>> names
['qian', 'zhao', 'Sun']
>>> names.insert(1,'zhang') #插入
>>> names
['qian', 'zhang', 'zhao', 'Sun']
>>> names2=[1,2,3,4]
>>> names.extend(names2) #合并
>>> names
['qian', 'zhang', 'zhao', 'Sun', 1, 2, 3, 4]
#深浅copy
>>> names3 = names.copy()#浅copy,指向同一块内存地址
>>> names
['qian', 'zhang', 'zhao', 'Sun', 1, 2, 3, 4]
>>> names3
['qian', 'zhang', 'zhao', 'Sun', 1, 2, 3, 4]
#深copy,新增一块内存地址,把数据完全copy一份到新内存
>>> import copy
>>> names
['qian', 'zhang', 'zhao', 'Sun', 1, 2, 3, 4]
>>> names4 = copy.deepcopy(names)
>>> names4
['qian', 'zhang', 'zhao', 'Sun', 1, 2, 3, 4]
2.元组:只能查询和切片,也叫只读列表,只有count和index方法
>>> names = ('alex','wang','eric')
>>> names.append('li')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'append'
>>> names[1]
'wang' >>> print(names.index('alex'))
0
>>> print(names[names.index('alex')])
alex
3.字符串:文件中只能存储字符串,且不可修改
name="my name is alex"
print(name.center(50,"-")) 打印50个字符,不够用-补上,并把name放中间
-----------------my name is alex------------------
>>> print(name.startswith('my')) #判断是否以某字符开头
True
print(name.endswith("ex")) 判断name字符串是否以ex结尾
My name is alex name="my\tnameis{name}andmyageis{year}old"
print(name.format(name='alex',year=23))
my name is alex and my age is 23 old
print(name.index('a'))
5
print(''.isdigit())是否为整数
True
print('+'.join(['','','',''])) 经常用
1+2+3+4
print('alexli'.replace('l','L')) 把小写l替换成大写的L
aLex Li
print('alex li'.split())把字符串按空格组成一个列表
['alex', 'li']
4.字典:key:value的数据类型,无序
>>> info = {'stu1101':'wang','stu1102':'zhang','stu1103':'li'}
a.增加
>>> info = {'stu1101':'wang','stu1102':'zhang','stu1103':'li'}
>>> info['stu1104'] = 'zhao'
>>> info
{'stu1101': 'wang', 'stu1102': 'zhang', 'stu1103': 'li', 'stu1104': 'zhao'} #合并
>>> info2 = {1:3,2:5}
>>> info.update(info2)
>>> info
{'stu1101': 'wang', 'stu1102': 'zhang', 'stu1103': 'li', 'stu1104': 'zhao', 1:
, 2: 5}
b.修改
>>> info = {'stu1101':'wang','stu1102':'zhang','stu1103':'li'}
>>> info['stu1101'] = 'lu'
>>> info
{'stu1101': 'lu', 'stu1102': 'zhang', 'stu1103': 'li'}
c.删除
>>> info
{'stu1101': 'lu', 'stu1102': 'zhang', 'stu1103': 'li'}
>>> del info['stu1101']
>>> info
{'stu1102': 'zhang', 'stu1103': 'li'} info.pop("stu1101") #pop删除
info.popitem()随机删除
d.查询
>>> info
{'stu1102': 'zhang', 'stu1103': 'li'}
>>> info['stu1102']
'zhang'
#判断是否存在字典中
print(info.get('stu1104')) 安全获取的方法
None
>>> print('stu1103' in info)
True >>> info
{'stu1102': 'zhang', 'stu1103': 'li'}
>>> info['stu1102']
'zhang'
>>> for i in info: #最建议的查询方式
... print(i,info[i])
...
stu1102 zhang
stu1103 li
>>> for k,v in info.items():
... print(k,v)
...
stu1102 zhang
stu1103 li >>> print(info.items())
dict_items([('stu1102', 'zhang'), ('stu1103', 'li')])
e.多级字典的查询方式
5.集合:无序,天生去重
>>> list = [1,2,3,4]
>>> list_1 = set(list)
>>> print(type(list_1),list_1)
<class 'set'> {1, 2, 3, 4}
关系型测试:
交差并子父对称集操作
a.增加
>>> list = [1,2,3,4]
>>> list_1 = set(list)
>>> print(type(list_1),list_1)
<class 'set'> {1, 2, 3, 4}
>>> list_1.add(999)
>>> list_1
{1, 2, 3, 4, 999}
>>> list_1.update([777,888])
>>> list_1
{1, 2, 3, 4, 999, 777, 888}
b.删除
>>> list_1.remove(999)
>>> list_1
{1, 2, 3, 4, 777, 888}
>>> list_1.discard(888)
>>> list_1
{1, 2, 3, 4, 777}
>>> list_1.pop()
1
c.深浅复制,跟列表一样
d.判断
len(list_1) #测试长度
判断是否存在集合中,大于小于等
6.return
两个作用:
1.得到程序的执行结果;
2.程序结束,return后的代码不再执行;
python 列表、元组、字符串、字典、集合、return等梳理的更多相关文章
- Python—列表元组和字典
Python-列表元组和字典 列表 元组 字典 列表: 列表是Python中的一种数据结构,他可以存储不同类型的数据.尽量存储同一种类型 列表索引是从0开始的,我们可以通过索引来访问列表的值. 列表的 ...
- Python之旅Day2 元组 字符串 字典 集合
元组(tuple) 元组其实跟列表差不多,也是存一组数,与列表相比,元组一旦创建,便不能再修改,所以又叫只读列表. 语法: names = ("Wuchunwei","Y ...
- Python列表元组和字典解析式
目录 列表解析式List comprehensive 集合解析式Set comprehensive 字典解析式Dict comprehensive 总结 以下内容基于Python 3x 列表解析式Li ...
- Python成长笔记 - 基础篇 (三)python列表元组、字典、集合
本节内容 列表.元组操作 字符串操作 字典操作 集合操作 文件操作 字符编码与转码 一.列表和元组的操作 列表是我们最以后最常用的数据类型之一,通过列表可以对数据实现最方便的存储.修改等操作 定义 ...
- python—列表,元组,字典
——列表:(中括号括起来:逗号分隔每个元素:列表中的元素可以是数字,字符串,列表,布尔值等等) (列表元素可以被修改) list(类) (有序的) [1]索引取值:切片取值:for循环:whi ...
- python 列表 元组 字符串
列表添加: list.append() list.extend() list.insert() 列表删除: list.remove() #删除某一个元素 list.pop() #删除某一个返回删 ...
- python列表元组
python列表元组 索引 切片 追加 删除 长度 循环 包含 定义一个列表 my_list = [] my_list = list() my_list = ['Michael', ' ...
- python列表和字符串的三种逆序遍历方式
python列表和字符串的三种逆序遍历方式 列表的逆序遍历 a = [1,3,6,8,9] print("通过下标逆序遍历1:") for i in a[::-1]: print( ...
- Python列表,元组,字典,字符串方法笔记
01. 列表 1.1 列表的定义 List(列表) 是 Python 中使用 最频繁 的数据类型,在其他语言中通常叫做 数组 专门用于存储 一串 信息 列表用 [] 定义,数据 之间使用 , 分隔 列 ...
- python3笔记十八:python列表元组字典集合文件操作
一:学习内容 列表元组字典集合文件操作 二:列表元组字典集合文件操作 代码: import pickle #数据持久性模块 #封装的方法def OptionData(data,path): # ...
随机推荐
- [SinGuLaRiTy] 最短路计算代码库
[SinGuLaRiTy-1002] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. Dijkstra: 题目描述 有向图的单源点最短路问题( ...
- [原]android sdk更新的终极解决方案
由于众所周知的原因,国内更新Android SDK一直是个老大难的事情,一般都要到处找VPN之类的工具来曲线救国.不过其实谷歌已经帮我们想到这点了,我们自身就可以解决问题,步骤如下: 打开SDK Ma ...
- 性能测试培训:帮你定位 Linux 性能问题的 18 个命令以及工具
性能测试培训:帮你定位 Linux 性能问题的 18 个命令以及工具 poptest是国内唯一一家培养测试开发工程师的培训机构,以学员能胜任自动化测试,性能测试,测试工具开发等工作为目标.在popte ...
- 利用_winreg模块在注册表中分析无线访问热点
_winreg.OpenKey(key, sub_key, res, sam) key是一个已经打开的键,或者是HKEY_CLASSES_ROOT.HKEY_CURRENT_USER.HKEY ...
- FreeBSD上构架Nginx服务器
这篇文章主要记录作者如何在FreeBSD上构架Nginx服务器.作者采用下载该程序的一个源代码包手动编译的方法,而不是使用包管理工具.这样做有两个原因:首先包质量不能保证,或无效或版本旧:其次需要在编 ...
- 关于Java中volatile关键字笔记
volatile通常被认为是一种轻量级的synchronized,字面上它表示易变的,在并发编程中,它保证了共享变量的可见性.所谓可见性指的是,某个线程对变量进行操作后,其他线程能够读取到操作后的最新 ...
- curl_escape ---> 使用URL 编码给定的字符串
curl_escape (PHP 5 >= 5.5.0) curl_escape — 使用 URL 编码给定的字符串 说明¶ string curl_escape ( resource $ch ...
- 线段树区间更新操作及Lazy思想(详解)
此题题意很好懂: 给你N个数,Q个操作,操作有两种,‘Q a b ’是询问a~b这段数的和,‘C a b c’是把a~b这段数都加上c. 需要用到线段树的,update:成段增减,query:区间求 ...
- 基于vue2.0前端组件库element中 el-form表单 自定义验证填坑
eleme写的基于vue2.0的前端组件库: http://element.eleme.io 我在平时使用过程中,遇到的问题. 自定义表单验证出坑: 1: validate/resetFields 未 ...
- MySQL注入与防御(排版清晰内容有条理)
为何我要在题目中明确排版清晰以及内容有条理呢? 因为我在搜相关SQL注入的随笔博客的时候,看到好多好多都是页面超级混乱的.亲爱的园友们,日后不管写博客文章还是平时写的各类文章也要多个心眼,好好注意一下 ...