1 列表

list就是一种采用分离式技术实现的动态顺序表(tuple也一样):

  • 在建立空表(或者很小的表)时,系统分配一块能容纳8个元素的存储区;
  • 在执行插入操作(insert或append)时,如果元素存储区满就换一块4倍大的存储区;
  • 但如果此时的表已经很大(目前的阀值为50000),则改变策略,采用加一倍的方法。引入这种改变策略的方式,是为了避免出现过多空闲的存储位置。

1.1 列表

列表也叫数组,列表定义,使用[]即可;列表里面可以再套列表,一个里面套一个列表,叫二维数组;一个里面套一个列表,里面的列表再套一个列表,这个叫三维数组,套几层就是几维,定义格式如下:

  1. stu_name = ['崔海龙','杨帆','刘荣心']#一维数组
  2. list2 = ['marry','lily',[50,'monkey']] #二维数组
  3. list3 = ['name','sex',['lily',124,['aaaa','bbb']]] #三维数组

列表的值可以修改,所以都没返回值,不能直接打印!

1.2 列表方法--增

append() #在list的末尾添加一个元素

insert() #指定位置添加元素

extend() #末位添加序列

L1+L2 #合并

L1*3 #乘

  1. stu_name.append('杨月')#在list的末尾添加一个元素
  2. stu_name.insert(0,'小军')#指定位置添加元素
  3. List1.extend(seq)#合并两个列表(序列)
  4. List1 + List2#合并两个列表
  1. >>> stu = ['tom', 'jack']
  2. >>> str = 'Jane'
  3. >>> stu.extend(str)
  4. >>> stu
  5. ['tom', 'jack', 'J', 'a', 'n', 'e']

1.3 列表方法--删

remove() #删除指定元素,如果

pop() #删除最后一个元素

pop(index) #删除指定下标的元素

del list / del list[index]

clear()

  1. stu_name.pop()#删除最后一个元素
  2. stu_name.pop(4)#删除指定下标的元素
  3. stu_name.remove('小军')#删除指定的元素
  4. del stu_name[-1]
  5. stu_name.clear()#清空列表,变成空列表

1.4 列表方法--改

list[index] = 'XXXX'

reverse() #反转

sort(reverse=True) #排序,默认是升序,也是不能直接通过

  1. stu_name[5]='孔垂顶' #修改指定下标位置的值
  2. List.reverse() #反转
  3. stu.sort() #排序 默认升序
  4. stu.sort(reverse = True) #排序 降序

1.5 列表方法--查

  1. stu[0] #第一个元素
  2. stu[-1] #倒数第一个元素
  3. stu.count('jack') #查询某个元素在list里面出现的次数
  4. stu.index('jack') #查询指定元素的下标,元素不存在的话,会报错;如果有重复的,返回第一个的下标

'元素' in list #元素是否在列表中,返回True或False

2 字典

2.1 字典

字典是无序的。

  1. infos = {'marry':[18,18612512981,'北京'],'amy':[20,18612512991,'山东'],'lily':[25,18612532981,'河南']}

字典也可以循环。

  1. for k in stus:
  2. print(k,'===>',stus.get(k))
  3.  
  4. for k,v in stus.items():
  5. print(k,'===>',v)

2.2 字典方法--增

  1. dic['key']='value'  # 不管key存不存在,都会修改
  2. dic.setdefault('key','value')  # 如果key已存在, 不会修改;如果key不存在,增加key,值为value; 有返回值:如果字典中包含有给定键,则返回该键对应的值,否则返回为该键设置的值

2.3 字典方法--删

  1. dic.pop('key')  # 把key从字典中删除。如果key不存在,则会报错。dic.pop('key')的返回值为被删除的key对应的值
  2. del dic['key']  # 把key从字典中删除。如果key不存在,则会报错
  3. dic.popitem()  # 把从字典中随机删除一个key
  4. dic.clear()  #把字典的所有key清空

2.4 字典方法--改

  1. dict.update(dict2) #把字典dict2的键/值对更新到dict里
  2. dic['key']='value' #同增

2.5 字典方法--查

  1. dic['key']  # 如果key不存在,则会报错,不推荐使用
  2. dic.get('key')# 如果key不存在,则会返回None,推荐使用
  3. dic.get('key','default')  # 如果key不存在,则返回定义的默认值default。如果key存在,则返回原值
  4. dic.values()  #打印字典里的所有values
  5. dic.keys()  #打印字典里的所有keys
  6. dic.items()  #循环取key和value。不推荐使用,因为items是把字典转成List,再取值,效率比较低。推荐使用for key in dic。查看以下 字典高效取值

KEY in dict #判断KEY是否在这个字典中,返回True或False

3 字符串

3.1 字符串

字符串不可变,即不能通过下标修改,但可以全部重新赋值

3.2 字符串方法

  1. new_password = password.strip('.jpg') #去除首尾指定字符;默认去掉字符串两边的空格和换行符
  2. print(password.lstrip())#截掉字符串左边的空格或指定字符
  3. print(password.rstrip())#截掉字符串右边的空格或指定字符
  4.  
  5. print(password.upper())#转成大写的
  6. print(password.lower())#转成小写的
  7. print(password.capitalize())#把首字母改成大写的
  8.  
  9. print(password.count('jpg'))#指定字符串出现的次数
  10. print(password.find('jpg'))#它找不到元素的时候,不会报错,会返回-1。如果有多个,返回第一个
  11. print(password.index('jpg'))#找不到的时候会报错
  12. print (password.isdigit()) # 判断是否为正整数
  13. print (password.isspace()) # 判断是否全是空格,''不是空格
  14.  
  15. print(password.replace('谭爱玲','上山打老虎'))#替换字符串
  16. print (name.replace('Abc','abe',2)) # 把前面Abc的值替换成后面的abe。不修改原name值。后面的数字表示替换几次,如2表示替换第1~2个值。
  17.  
  18. print(filename.endswith('.mp3'))#判断是否以xx结尾
  19. print(filename.startswith(''))#判断是否以开头
  20. print('{name},{age}'.format(name='hhh',age=age))#用于字符串的格式化输出
  1. print('aa'.isidentifier())#是否是一个合法的变量名
  2. print('aa'.islower())#是否是小写字母
  3. print('AA'.isupper())#是否是大写字母
  4. print('Loadrunner Book'.istitle())#是不是一个标题,判断首字母是否大写
  5.  
  6. print('+'.join(['hehe','haha','ee']))#拼接字符串
  7.  
  8. p = str.maketrans('abcdefg','')#前面的字符串和后面的字符串做映射
  9.  
  10. print('cc ae gg'.translate(p))#输出按照上面maketrans做映射后的字符串
  1. #下面是反解
  2. new_p = str.maketrans('','abcdefg')
  3.  
  4. '''
  5. 用于给 translate() 方法创建字符映射转换表。
  6. 可以只接受一个参数,此时这个参数是个字典类型(暂不研究这种情况)
  7. 对于接受两个参数的最简单的调用方式,第一个参数是字符串,表示需要转换的字符,第二个参数也是字符串,表示转换的目标。两个字符串的长度必须相同,为一一对应的关系。
  8. 在Python3中可以有第三个参数,表示要删除的字符,也是字符串。
  9. 一般 maketrans() 方法需要配合 translate() 方法一起使用。
  10. '''
  11.  
  12. print('cc ae gg'.translate(new_p))
  13.  
  14. print('mysql is is db'.rfind('is'))#返回最右边字符的下标
  15. print('1+2+3+4'.split('+'))#切割字符串,返回一个list
  16. print('1+2+3\n1+2+3+4'.splitlines())#按照换行符分割
  17. print('Abcdef'.swapcase())#大小写反转
  1. print('acbe'.isalpha()) #只能是字母,都是字母才会返回True
  2. print('acbe123'.isalnum()) #判断字符串里面有英文或者有数字。

3.3 string模块

  1. #补充
  2. import string
  3.  
  4. print(string.ascii_lowercase)
  5. print(string.ascii_uppercase)
  6. print(string.digits)
  7. print(string.punctuation)
  8. print(string.ascii_letters)
  1. abcdefghijklmnopqrstuvwxyz
  2. ABCDEFGHIJKLMNOPQRSTUVWXYZ
  3. 0123456789
  4. !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
  5. abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

运行结果

3.4 Python字符串运算符

下表实例变量 a 值为字符串 "Hello",b 变量值为 "Python":

操作符 描述 实例
+ 字符串连接
>>>a + b 'HelloPython'
* 重复输出字符串
>>>a * 2 'HelloHello'
[] 通过索引获取字符串中字符
>>>a[1] 'e'
[ : ] 截取字符串中的一部分
>>>a[1:4] 'ell'
in 成员运算符 - 如果字符串中包含给定的字符返回 True
>>>"H" in a True
not in 成员运算符 - 如果字符串中不包含给定的字符返回 True
>>>"M" not in a True
r/R 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思来使用,没有转义特殊或不能打印的字符。 原始字符串除在字符串的第一个引号前加上字母"r"(可以大小写)以外,与普通字符串有着几乎完全相同的语法。
>>>print r'\n' \n >>> print R'\n' \n
% 格式字符串 print("My name is %s and weight is %d kg!" % ('Zara', 21) )

4 元组

4.1 元组

mysql = ('118.24.3.40',3306,'root','123456')
#元组也是一个不可变列表,元组不能修改

  1. #元组定义
  2. t1 = ('abc')
  3. t2 = ('abc',) #只有一个元素时,要加逗号
  4. print(type(t1))
  5. print(type(t2))
  1. <class 'str'>
  2. <class 'tuple'>

运行结果

【02】Python 字符串、列表、元组、字典的更多相关文章

  1. python字符串/列表/元组/字典之间的相互转换(5)

    一.字符串str与列表list 1.字符串转列表 字符串转为列表list,可以使用str.split()方法,split方法是在字符串中对指定字符进行切片,并返回一个列表,示例代码如下: # !usr ...

  2. python字符串 列表 元组 字典相关操作函数总结

    1.字符串操作函数 find 在字符串中查找子串,找到首次出现的位置,返回下标,找不到返回-1 rfind 从右边查找 join 连接字符串数组 replace 用指定内容替换指定内容,可以指定次数 ...

  3. python 字符串,列表,元组,字典相互转换

    1.字典 dict = {'name': 'Zara', 'age': 7, 'class': 'First'} 字典转为字符串,返回:<type 'str'> {'age': 7, 'n ...

  4. Python第三天 序列 数据类型 数值 字符串 列表 元组 字典

    Python第三天 序列  数据类型  数值  字符串  列表  元组  字典 数据类型数值字符串列表元组字典 序列序列:字符串.列表.元组序列的两个主要特点是索引操作符和切片操作符- 索引操作符让我 ...

  5. Python第三天 序列 5种数据类型 数值 字符串 列表 元组 字典 各种数据类型的的xx重写xx表达式

    Python第三天 序列  5种数据类型  数值  字符串  列表  元组  字典 各种数据类型的的xx重写xx表达式 目录 Pycharm使用技巧(转载) Python第一天  安装  shell ...

  6. **python中列表 元组 字典 集合

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. 1.列表 列表是以方括号“[]”包围的数据集合,不同成员以“,”分隔. 列表的特 ...

  7. python中列表 元组 字典 集合的区别

    列表 元组 字典 集合的区别是python面试中最常见的一个问题.这个问题虽然很基础,但确实能反映出面试者的基础水平. (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计 ...

  8. Python学习-列表元组字典操作

    一.列表 列表是Python的基本数据类型之一,它是以 [] 括起来的,内部成员用逗号隔开.里面可以存放各种数据类型. # 例如: list2 = ['jason', 2, (1, 3), ['war ...

  9. python 中列表 元组 字典 集合的区别

    先看图片解释 (1)列表 什么是列表呢?我觉得列表就是我们日常生活中经常见到的清单.比如,统计过去一周我们买过的东西,把这些东西列出来,就是清单.由于我们买一种东西可能不止一次,所以清单中是允许有重复 ...

  10. Python之列表&元组&字典

    今天学习了Python的基本数据类型,做以下笔记,以备查用. 一.列表 列表的常用方法: 1.append()方法 def append(self, p_object): # real signatu ...

随机推荐

  1. tensorflow 分布式搭建

    https://blog.csdn.net/qq_40652148/article/details/80467131 https://yq.aliyun.com/articles/602111 git ...

  2. firewalld无法使用解决

    一.安装完Python3.6.5后无法使用firewalld解决 解决:需要把/usr/sbin/firewalld./usr/bin/firewall-cmd 的头部内容改为原来的 pyton2.7 ...

  3. 【释疑】tp99、单实例qps

    tp99 tp99的定义 tp99 (top percentile 99),指一组数据从小到大排列,处于99%位置的数据的值.例如等差数列range(1,101),tp99=99 tp99优于平均值的 ...

  4. YARN日志聚合相关参数配置

    日志聚合是YARN提供的日志中央化管理功能,它能将运行完成的Container/任务日志上传到HDFS上,从而减轻NodeManager负载,且提供一个中央化存储和分析机制.默认情况下,Contain ...

  5. java日常统计

    姓名:Danny         日期:2017/11/27 任务 日期 听课 编程程序 阅读课本 准备考试 日统计 周一 30 120 150 周二 50 140 190 周三 周四 周五 周六 周 ...

  6. DB.JDBC_jar_下载

    1.Download Microsoft JDBC Driver for SQL Server - SQL Server _ Microsoft Docs.html(https://docs.micr ...

  7. java主方法组成分析

    public static void main(String args[]) public :是一种访问权限,主方法是一切的开始点,开始点一定是公共的 static :表示此方法可由类直接调用 voi ...

  8. 自定义SpringBoot启动控制台图标

    使用过SpringBoot的小伙伴众所周知,在启动的过程中,在控制台会首先打印spring的图标以及版本号(这里以IDEA为例) 如果需要更改这个打印图标的话, 需要以下步骤: 1.打开SpringB ...

  9. 关于Pulsar与Kafka

    在本系列的Pulsar和Kafka比较文章中,我将引导您完成我认为重要的几个领域,并且对于人们选择强大,高可用性,高性能的流式消息传递平台至关重要.消息传递模型(Messaging model)是用户 ...

  10. 关于微信H5页面开发中音乐不自动播放的解决方法

    我想应该有很多人在做H5场景应用.H5微刊.H5微杂志的时候加入背景音乐吧(客户需求),相信很多人一定碰过不能自动播放的时候,即使是相同的iPhone 5s也有不播放的时候,很蛋疼吧!? 之前我的解决 ...