【关于Python中类型的知识点补充】

Python容器类型与推导式详解

一、关于Python中容器类型的知识点补充

1、字符串

使用单引号或双引号定义

str1 = ‘abcdefg’
str2 = “hello world”

字符串可直接使用四则运算符运算:

print(‘-’ * 20)

对于所定义字符串中有引号的情况:

考虑使用转移符号:str1 = ‘I’am Tom’
单引双引混用:str2 = “I’m Tom”

字符串的切片:

左闭右开
序列名称[开始位置下标:结束位置下标:步长(步阶)]
numstr = ‘0123456789’
numstr[0:3:1] # 012 => range方法非常类似,步长:每次前进1步
numstr[0:3:2] # 02 => 每次前进2步
str[::-1]倒置字符串
str[-3::]起始参数设置负数的意思是从后往前数

字符串的内置方法:

find()	# 检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则返回-1。
index()	# 检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则报异常。
replace()	# 返回替换后的字符串
split()	# 返回切割后的列表序列,split(".")) # 以'.' 切分
title()	# 所有单词首字母大写
upper()	# 所有英文大写
lower()	# 所有英文小写
join()	# 以规定字符拼接字符串

list = ['1', '2', '3']
str1 = '_'
print(str1.join(list))  # '1-2-3'

2、列表

2.1 增

append()	#增加指定数据到列表中
list.append("4")    # 在列表的末尾添加指定元素

extend()	#列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表
list.extend(['5', '6', '7'])    # 在列表的末尾扩展指定的多个元素

insert()	#指定位置新增数据
list.insert(0, "0") # 在列表的指定位置插入指定元素

2.2、删

del 列表[索引]	#删除列表中的某个元素
del list[0] # 从内存中删除

pop(index)	#删除指定下标的数据(默认为最后一个),并返回该数据
list.pop(1) # 从列表中删除指定索引元素,默认最后一位,可参数指定位置

remove(元素)	#移除列表中某个数据的第一个匹配项。
list.remove('3')    # 从列表中删除指定元素

2.3、改

列表[索引] = 修改后的值	#修改列表中的某个元素
list[0] = '0'   # 元素替换

reverse() #将数据序列进行倒叙排列
list.reverse()  # 翻转列表

sort()	#对列表序列进行排序
list.sort(reverse=True) # 排序操作,其中参数reverse设置True为倒序

2.4、查

列表在计算机中的底层存储形式,列表和字符串一样,在计算机内存中都占用一段连续的内存地址,我们向访问列表中的每个元素,都可以通过"索引下标"的方式进行获取。

list1 = ['apple', 'banana', 'pineapple']	# 获取列表中的banana
print(list1[1])

index()	#指定数据所在位置的下标 
list1.index('apple')

count()	#统计指定数据在当前列表中出现的次数 
list2.count('关羽')

in	#判断指定数据在某个列表序列,如果在返回True,否则返回False 
if '10.1.1.100' in list3:

not in	#判断指定数据不在某个列表序列,如果不在返回True,否则返回False

2.5、列表的遍历

while循环

list1 = ['貂蝉', '大乔', '小乔']# 定义计数器
i = 0# 编写循环条件
while i < len(list1):
    print(list1[i])
    # 更新计数器
    i += 1

for循环

list1 = ['貂蝉', '大乔', '小乔']
for i in list1:
    print(i)

3、元组

元组特点:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型。

tuple1 = (10, 20, 30)

嵌套元组

nested_tuple = ((1, 2, 3), (2, 4, 6), (2, 3, 5)) # 定义一个嵌套元组

操作方法:

元组[索引]	#根据索引下标查找元素
index()	#查找某个数据,如果数据存在返回对应的下标,否则报错,语法和列表、字符串的index方法相同
count()	#统计某个数据在当前元组出现的次数
len()	#统计元组中数据的个数

4、集合

集合:集合本身拥有去重性质

在Python中,我们可以使用一对花括号{}或者set()方法来定义集合,但是如果你定义的集合是一个空集合,则只能使用set()方法。

4.1、增

add()方法:向集合中增加一个元素(单一)

students = set()
students.add('李哲')
students.add('刘毅')
print(students)

4.2、删

remove()方法:删除集合中的指定数据,如果数据不存在则报错。

products = {'萝卜', '白菜', '水蜜桃', '奥利奥', '西红柿', '凤梨'}	# 定义一个集合
products.remove('白菜') # 使用remove方法删除白菜这个元素
print(products)

4.3、查

  1. in :判断某个元素是否在集合中,如果在,则返回True,否则返回False
  2. not in :判断某个元素不在集合中,如果不在,则返回True,否则返回False

5、字典

5.1、增

向字典中添加元素的语法:字典名称[key] = value

# 1、定义一个空字典
person = {}
# 2、向字典中添加数据
person['name'] = '刘备'
person['age'] = 40
person['address'] = '蜀中'
# 3、使用print方法打印person字典
print(person)

5.2、删

1、del 字典名称[key]:删除指定元素

# 1、定义一个有数据的字典
person = {'name':'王大锤', 'age':28, 'gender':'male', 'address':'北京市海淀区'}
# 2、删除字典中的某个元素(如gender)
del person['gender']
# 3、打印字典
print(person)

2、clear()方法:清空字典中的所有key

# 1、定义一个有数据的字典
person = {'name':'王大锤', 'age':28, 'gender':'male', 'address':'北京市海淀区'}
# 2、使用clear()方法清空字典
person.clear()
# 3、打印字典
print(person)

5.3、改

基本语法:字典名称[key] = value

# 1、定义字典
person = {'name':'孙悟空', 'age': 600, 'address':'花果山'}
# 2、修改字典中的数据(address)
person['address'] = '东土大唐'
# 3、打印字典
print(person)

5.4、查

1、字典序列[key]:使用具体的某个key查询数据,如果未找到,则直接报错。
2、keys() 以列表返回一个字典所有的键
3、values() 以列表返回字典中的所有值
4、items() 以列表返回可遍历的(键, 值) 元组数据
5、get() 使用key查询,未找到不会报错,推荐使用

二、推导式

推导式comprehensions(又称解析式),是Python的一种独有特性。推导式是可以从一个数据序列构建另一个新的数据序列(一个有规律的列表或控制一个有规律列表)的结构体。

1、列表推导式

变量名 = [表达式 for 变量 in 列表]
变量名 = [表达式 for 变量 in 列表 if 条件]
变量名 = [表达式 for 变量 in 列表 for 变量 in 列表]
例如:squares_list = [i**2 for i in range(1, n + 1) if i % 2 == 0]

2、集合推导式

变量名 = {表达式 for 变量 in 列表}
setnew = {i**2 for i in range(3)}

3、字典推导式

# 定义名字列表
names = ['Alice', 'Bob', 'Charlie']

# 定义年龄列表
ages = [25, 30, 35]
 
# 使用字典推导式将两个列表拼接成字典
people_dict = {names[i]: ages[i] for i in range(len(names))}

三、可变类型和不可变类型

不可变类型:内存地址一旦固定,其值就不能发生改变

数值(int整型、float浮点类型)

bool类型(True和False)

字符串类型(str)

元组(tuple 1,2,3)

可变类型:内存地址一旦固定,其值是可以发生改变

列表(list [1, 2, 3])

字典(dict {key:value})

集合(set {1, 2})

查看变量地址可以使用内置方法id(),其参数就是要显示的变量信息

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值