列表

基本概念列表是有序的元素集合,所有元素放在一对中括号中,用逗号隔开,没有长度限制;

列表索引值以0为开始值,-1为从未尾的开始位置。

列表可以使用+操作符进行拼接,使用*表示重复。

当列表元素增加或删除时,列表对象自动进行扩展或收缩内存,保证元素之间没有缝隙;

列表中的元素可以是不同类型的

列表的使用方式list = ["zeruns","blog","blog.zeruns.tech",9527,[0,1,2,[1,2]]]#创建一个列表,一个列表里可以有多种数据类型,甚至可以嵌套列表来做二或三维列表

# 0 1 2 3 4

# -5 -4 -3 -2 -1

print(list[0])

print(list[2])

print(list[4][2])

print(list[4][3][0])

print(list[-1])

print(list[-2])

'''

结果:

zeruns

blog.zeruns.tech

2

1

[0, 1, 2, [1, 2]]

9527

'''

列表的基本操作

列表操作符操作符含义< list1 > + < list2 >连接两个列表

< list > * < 整数类型 >对列表进行整数次重复

< list >[< 整数类型 >]索引列表中的元素

len( < seq > )获取列表中元素个数

for < var > in < list > :对列表进行循环列举

< list >[< 整数类型 > : < 整数类型 >]取列表的一个子序列

< expr > in < list >成员检查,判断< expr >是否在列表中

列表的相关方法

方法方法含义< list >.append( x )将元素x增加到列表的最后

< list >.sort( )将列表元素排序,默认为升序

< list >.reverse( )将列表元素反转

< list >.index( )返回第一次出现元素x的索引值

< list >.insert( i, x )在位置i处插入新元素x

< list >.count( x )返回元素x在列表中的数量

< list >.remove( x )删除列表中第一次出现的元素x

< list >.pop( i )取出列表中位置i的元素,并删除它>>> a = [2,0,9,1,5]

>>> b = ['c','w','b','a']

>>> a.append(9)

>>> a

[2, 0, 9, 1, 5, 9]

>>> a.sort()

>>> a

[0, 1, 2, 5, 9, 9]

>>> a.reverse()

>>> a

[9, 9, 5, 2, 1, 0]

>>> b.sort()

>>> b

['a', 'b', 'c', 'w']

>>> a.index(5)

2

>>> a.insert(2,7)

>>> a

[9, 9, 7, 5, 2, 1, 0]

>>> a.count(9)

2

>>> a.remove(9)

>>> a

[9, 7, 5, 2, 1, 0]

>>> a.pop(0)

9

>>> a

[7, 5, 2, 1, 0]

列表推导式列表推导式(又称列表解析式)提供了一种简明扼要的方法来创建列表。

它的结构是在一个中括号里包含一个表达式,然后是一个for语句,然后是 0 个或多个 for 或者 if 语句。那个表达式可以是任意的,意思是你可以在列表中放入任意类型的对象。返回结果将是一个新的列表,在这个以 if 和 for 语句为上下文的表达式运行完成之后产生。

列表推导式的执行顺序:各语句之间是嵌套关系,左边第二个语句是最外层,依次往右进一层,左边第一条语句是最后一层。data = [i for i in range(10)]

#等价于

data = []

for i in range(10):

data.append(i)

'--------------分割线---------------'

data = [2**i for i in range(10)]

#等价于

data = []

for i in range(10):

data.append(2**i)

'--------------分割线---------------'

data = [num for num in range(20) if num%2==1]

#等价于

data = []

for num in range(20):

if num%2==1:

data.append(num)

应用一个学校,有3个办公室,现在有8位老师等待工位的分配,请编写程序,完成随机的分配

答案:点击阅读原文

运行结果如下:

元组

基本概念元组(tuple)是包含多个元素的类型,元素之间用逗号分割

如:t1 =(123,456,"hello")

可以通过把若干元素放在一对圆括号中创建元组,如果只有一个元素的话则需要多加一个逗号,例如(3,)。

也可以使用tuple()函数把列表、字典、集合、字符串以及range对象、map对象、zip对象或其他类似对象转换为元组。

元组可以是空的,t2=()

一个元组也可以作为另一个元组的元素,此时,作为元素的元组需要增加括号,从而避免歧义,如:t3=(123,456,("hello","world"))

Python 的元组与列表类似,不同之处在于元组的元素不能修改。

元组的使用>>> a = ('hello',2020,110)

>>> a

('hello', 2020, 110)

>>> a[1]

2020

元组中的元素值是不允许修改和删除的,但我们可以使用del语句来删除整个元组>>> a = ('hello',2020,'blog.zeruns.tech')

>>> print(a)

('hello', 2020, 'blog.zeruns.tech')

>>> del a

>>> print(a)

Traceback (most recent call last):

File "", line 1, in

print(a)

NameError: name 'a' is not defined

所谓元组的不可变指的是元组所指向的内存中的内容不可变。>>> tup = ('r', 'u', 'n', 'o', 'o', 'b')

>>> tup[0] = 'g' # 不支持修改元素

Traceback (most recent call last):

File "", line 1, in

TypeError: 'tuple' object does not support item assignment

>>> id(tup) # 查看内存地址

4440687904

>>> tup = (1,2,3)

>>> id(tup)

4441088800 # 内存地址不一样了

字典

基本概念字典是无序的对象集合,使用键-值(key-value) 存储,具有极快的查找速度。

键(key)必须使用不可变类型

同一个字典中,键(key)必须是唯一的

字典的每个键值key= >value对用冒号:分割,每个键值对之间用逗号,分割,整个字典包括在花括号}中,格式如下所示:

dic = {key1 : value1, key2 : value2 }

字典键一般是唯的,如果重复最后的一一个键值对会替换前面的,值不需要唯一。

键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行

>>> hhh = {'website':'blog.zeruns.tech','name':'zeruns'}

>>> hhh['website']

'blog.zeruns.tech'

常用方法

方法描述keys()返回字典中键的列表

values()返回字典中值的列表

items()返回tuples的列表。每个tuple由字典的键和相应值组成

clear()删除字典的所有条目

copy()返回字典高层结构的一个拷贝,但不复制嵌入结构,而只复制对那些结构的引用

update(x)用字典x中的键值对更新字典内容。

get(x[,y]))返回键x,若未找到该键返回none,若提供y,则未找回时返回y

str(x)以字符串形式输出字典x

len(x)返回字典x的元素个数,即键的总数。>>> hhh = {'website':'blog.zeruns.tech','name':'zeruns'}

>>> hhh.keys()

dict_keys(['website', 'name'])

>>> hhh.values()

dict_values(['blog.zeruns.tech', 'zeruns'])

>>> hhh.items()

dict_items([('website', 'blog.zeruns.tech'), ('name', 'zeruns')])

>>> hhh.copy()

{'website': 'blog.zeruns.tech', 'name': 'zeruns'}

>>> awsl = {'website':'https://blog.zeruns.tech'}

>>> hhh.update(awsl)

>>> hhh

{'website': 'https://blog.zeruns.tech', 'name': 'zeruns'}

>>> hhh.get('website')

'https://blog.zeruns.tech'

>>> hhh.get('hhh','666')

'666'

>>> hhh.clear()

>>> hhh

{}

>>> dict = {'Name': 'zeruns', 'Age': 7, 'Class': 'First'}

>>> str(dict)

"{'Name': 'zeruns', 'Class': 'First', 'Age': 7}"

字典元素修改、添加与删除可以使用字典对象的pop()删除指定“键”对应的元素,同时返回对应的“值"

popitem()方法用于删除字典的一个键对,并返回一个包含两个元素的元组,其中的两个元素分别是字典元素的“键”和“值" .

也可以使用del删除指定的“键”对应的元素。

集合

概述Python集合是无序、可变的容器对象,所有元素放在一对大括号中,元素之间使用逗号分隔,同一个集合内的每个元素都是唯一的, 不允许重复,

集合中只能包含数字、字符串、元组等不可变类型的数据,而不能包含列表.字典、集合等可变类型的数据,包含列表等可变类型数据的元组也不能作为集合的元素。

集合中的元素是无序的,元素存储顺序和添加顺序并不一致。

集合不支持使用下标直接访问特定位置上的元素,也不支持使用random中的choice()函数从集合中随机选取元素,但支持使用random模块中的sample()函数随机选取部分元素。

set(集合)set和dict类似, 也是一组key的集合,但不存储value。由于key不能重复,所以,在set中,没有重复的key。

set是无序的,重复元素在set中自动被过滤。

可以使用大括号{ }或者set()函数创建集合,注意:创建一个空集合必须用set()而不是{ },因为{ }是用来创建一个空字典。

set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集(&)、井集(|)、差集(-)等操作。

集合的常用方法s = add(x):将元素x添加到集合s中,如果元素已存在,则不进行任何操作。

s = update(x):将x的元素添加到集合s中,x可以是列表,元组,字典等。

s.pop(x):随机删除集合中的一个元素。

s.remove(x):将元素x从集合s中移除,如果元素不存在,则会发生错误。

s.discard(x):将元素x从集合s中移除,如果元素不存在,不会发生错误。

len(s):计算集合 s 元素个数。

s.clear():清空集合 s。

字符串

概述字符串(str)是用双引号""或者单引号''括起来的一个或多个字符

字符串可以保存在变量中,也可以单独存在

字符串属于不可变对象,所有方法都是返回处理后的字符串或字节串,不对原字符串进行任何修改。

字符串操作字符串之间可以通过**+或***进行连接加法操作(+)将两个字符串连接成为一个新的字符串

乘法操作(*)生成一个由其本身字符串重复连接而成的字符串

x in s:如果x是s的子串,返回True,否则返回False

str[N:M]:切片, 返回子串

len()函数能返回-一个字符串的长度str1="hello,world"

len(str1)

大多数数据类型都可以通过str()函数转换为字符串:如str(123)

type()函数测试一个字符串的类型

字符串操作

操作含义+连接

*重复

< string >[ ]索引

< string >[ : ]剪切

len(< string >)长度

< string >.upper()字符串中字母大写

< string >.lower()字符串中字母小写

< string >.strip()去两边空格及指定字符

< string >.split()按指定字符分隔字符串为数组

< string >.join()连接两个字符串序列

< string >.find()搜索指定字符串

< string >.replace()字符串替换

for < var > in < string >字符串迭代

常用方法index(x)、rindex(x): 检测x是否包含在字符串中,返回相应的索引值,如果不存在。返回异常。

count(x):返回x在string里面出现的次数。replace(str1,str2[,max]):把将字符串中的str1替换成str2,如果max指定,则替换不超过max次。maketrans():创建字符映射的转换表。

translate(str):根据str给出的映射转换表转换string字符。ljust(width[,fllchar]): 返回一个原字符串左对齐,并使用fillchar填充至长度width的新字符串,fillchar默认为空格。rjust()、center()类似。split(str="",num=string.count(str)),其中num=string.count(str))以str为分隔符截取字符串,如果num有指定值,则仅截取num+1个子字符串。rsplit()类似,从右侧开始截取。

join(seq): 以指定字符串作为分隔符,将seq中所有的元素(的字符串表示)合并为一个新的字符串。startswith(substr)、endswith(substr):检查字符串是否是以指定子字符串substr开头或结束,是则返回True。strip()、rstrip()、lstrip(): 截取字符串的指定字符。

字符串格式化

python字符串格式化符号:

符 号描述%c格式化字符及其ASCII码

%s格式化字符串

%d格式化整数

%u格式化无符号整型

%o格式化无符号八进制数

%x格式化无符号十六进制数

%X格式化无符号十六进制数(大写)

%f格式化浮点数字,可指定小数点后的精度

%e用科学计数法格式化浮点数

%E作用同%e,用科学计数法格式化浮点数

%g浮点型数据 会去掉多余的零 至多保留6位

%G浮点型数据 会去掉多余的零 至多保留6位

%p用十六进制数格式化变量的地址

格式化操作符辅助指令:

符号描述*定义宽度或者小数点精度

-用做左对齐

+在正数前面显示加号( + )

< sp >在正数前面显示空格

#在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于用的是'x'还是'X')

0显示的数字前面填充'0'而不是默认的空格

%'%%'输出一个单一的'%'

(var)映射变量(字典参数)

m.n.m 是显示的最小总宽度,n 是小数点后的位数(如果可用的话)

应用编写程序,完成以下要求:

统计字符串中,各个字符的个数

比如:"hello world" 字符串统计的结果为:h:1 e:1 l:3 o:2 d:1 r:1 w:1

python基础语法合集-Python基础语法(四)—列表、元组、字典、集合、字符串相关推荐

  1. python列表元组字典集合实验心得_python学习小总结(列表、元组、字典、集合、字符串)...

    ---恢复内容开始--- 一.列表(list) 1.添加 append():追加,在列表末尾添加元素. 列表名.append(添加的元素) extend():扩展,在列表末尾添加元素. 列表名.ext ...

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

    参考文章:python中列表 元组 字典 集合的区别

  3. python基础语法合集-Python基础语法合集.zip

    [实例简介]精心整理的Python基础语法合集,变量,循环,输入输出等等都有,主要是知道概念和怎么用的 如果打开文件后有文字变成符号的,先把字体改为宋体就正常了 [实例截图] [核心代码] 目录 了解 ...

  4. python列表添加元素的三种方法定义集合数据对象_(1) List,tuple,dictionary,Python语法基础集,一,之,列表,元组,字典,集合...

    Python序列(列表.元组.字典.集合) 一.列表(List)与列表推导式 (一)列表(list) 1.列表是Python内置 可变序列 (列表中元素可增加删除或修改): 2.列表元素放在一对中括号 ...

  5. python入门——列表+元组+字典+集合

    列表 列表是最常用的python数据类型,它可以作为一个方括号内的逗号分隔值出现. 列表的数据项不需要具有相同的类型 1.列表嵌套(相当于二维数组) a=["b",'c','d'] ...

  6. python基础语法合集-Python基础语法介绍

    元组 基本概念.特性顺序存储相同/不同类型的元素 定义:使用()将元素括起来,元素之间用","括开 特性:不可变,不支持添加,修改,删除等操作 查询:通过下标查询元组指定位置的元素 ...

  7. python基础语法合集-python常用语法合集

    判断语句 (使用缩进来划分语句块,相同缩进数的语句在一起组成一个语句块) if condition_1: statement_block_1 elif condition_2: statement_b ...

  8. 4.Python基础语法(数字运算/字符串/列表/元组/字典/集合)

    4.1 数字运算 编程是将问题数据化的一个过程,数据离不开数字,Python的数字运算规则与我们学习的四则运算规则是一样的,即使不使用Python来编写复杂的程序,也可以将其当作一个强大的计算器.打开 ...

  9. Python列表/元组/字典/集合详解

    本文是对Python中的列表.元组.字典.集合知识的梳理总结,将Python的重要知识点梳理成条,通过一个简单的员工管理系统(EMS)实战,可以深入的了解Python的基本知识.本文基本上涵盖了在日常 ...

最新文章

  1. PostgreSQL11.3 创建用户和创建数据库
  2. 深入浅出Spring Security(二):FilterChainProxy的创建过程
  3. C语言僵尸进程,C/C++网络编程8——多进程服务器端之销毁僵尸进程
  4. 崩溃!Win10 强制更新导致电脑无限重启
  5. 蒙克:云计算安全问题被夸大
  6. Linux的基本使用
  7. 2021中国短视频和直播电商行业人才发展报告
  8. Spring Boot集成RabbitMQ发送接收JSON
  9. SpringBoot学习之logback.xml 配置指定包或类输出至单独的日志文件中
  10. Jbpm工作流表补数记录
  11. 混日子的老程序员感受结对编程的威力【工作效率狂提高】
  12. 在PyTorch训练一个epoch时,模型不能接着训练,Dataloader卡死
  13. Android Studio首次连接不上网易mumu模拟器解决办法
  14. 运动竞技类图文展示片头fcpx插件
  15. 趋势交易中区间跨度的定义
  16. Linux系统中如何创建NFS共享目录
  17. 天涯网友免责声明的各种版本收集
  18. spring data jpa使用详解(推荐)
  19. 百度开发者中心聚力AI开放能力,打造新时代下开发者的“淘金矿”
  20. 【硬核科普】动环监控系统工作原理

热门文章

  1. python中文乱码例子
  2. 国际财务报告准则 IFRS 与信息系统
  3. 提高Excel中VBA效率的四种方法
  4. hdu 5909 Tree Cutting——点分治(树形DP转为序列DP)
  5. 【iCore4 双核心板_ARM】例程五:SYSTICK定时器 实验——定时点亮LED
  6. 怎么修改windows命令行字体大小
  7. SpringMVC上传文件以流方式判断类型附常用类型
  8. ExtJS实现完美Grid(2)--分组统计
  9. mysql topn_TopN语句
  10. python从入门到精通视频(全60集)-【网盘下载】Python从入门到精通视频(全60集)...