【Python初级】第11讲 数据序列之公共操作/公共操作/推导式

 公共操作

在Python中,数字序列指的是一系列按顺序排列的数字元素。公共操作通常指不同数据结构(如字符串、列表、元组等)都支持的操作。这些操作包括但不限于合并、复制、检查元素是否存在等。

  1. 解释说明
  • 合并:使用+运算符可以合并两个序列,例如字符串或列表。
  • 复制:使用*运算符可以复制序列中的元素,适用于字符串、列表和元组。
  • 成员检查:使用innot in操作符可以检查某个元素是否存在于序列中,适用于字符串、列表、元组和字典。
  • 切片:通过索引值来限定范围,从序列中提取子序列,适用于字符串、列表和元组。
  1. 使用示例
  • 合并:
str1 = 'aa'
str2 = 'bb'

list1 = [1,2]
list2 = [3,5]

t1 = (1,2)
t2 = (3,5)

dict1 = {'name':'python'}
dict2 = {'age':30}

# + :合并
print(str1 + str2)
print(list1 + list2)
print(t1+t2)

# print(dict1+dict2) # 报错:字典不支持合并运算
  • 复制:
str1 = 'a'
list1 = ['hello']
t1 = ['world',]

# * .复制
print(str1 * 5)

# 打印10个-
print('-' * 10)
print(list1 * 5)
print(t1 * 5)
  • 检查元素是否存在:
str1 = 'abcd'
list1 = [10,20,30,40]
t1 = (100,200,300,400)
dict1 = {'name':'python','age':30}

# in 和 not in
# 1 字符a是否存在
print('a' in str1)
print('a' not in str1)

# 2 数据10是否存在
print(10 in list1)
print(10 not in list1)

# 3.100是否存在
print(100  in t1)
print(100 not in t1)

# 4. name 是否存在
print('name' in dict1)
print('name' not in dict1)
print('name' in dict1.keys())
print('name' in dict1.values())
  1. 注意事项
  • 在进行合并操作时,确保两个序列的类型是兼容的,例如不能直接合并字符串和列表。
  • 使用*运算符进行复制时,要注意复制的次数,避免无限复制导致的程序崩溃。
  • 在使用innot in操作符时,对于字典类型,是检查键而不是值。
  • 字典作为无序集合,不支持位置索引,只能通过键来访问值。

综上所述,数字序列的公共操作为Python编程提供了便利和灵活性,使得处理各种数据结构变得更加高效。

公共方法

 

在Python中,数据序列的公共方法指的是不同数据结构共有的操作方法,这些数据结构包括字符串、列表、元组等。下面将详细解释这些公共方法,并提供使用示例和注意事项

解释说明

  • 数据序列的公共方法是指那些可以作用于多种数据序列(如字符串、列表、元组)的基本操作。
  • 公共方法提供了一种统一的方式来处理不同类型的数据序列,简化了编程的复杂性。

str1 = 'abcd'
list1 = [10,20,30,40]
t1 = (100,200,300,400)
s1 = {10,20,30,40,50}
dict1 = {'name':'python','age':30}
#
# print(len(str1))
# print(len(list1))
# print(len(t1))
# print(len(dict1))


# del 目标 或 del(目标)
# del str1
# print(str1)

# del(list1)
# print(list1)

# del(list1[0])
# print(list1)
#
# del s1
# print(s1)

# del dict1
# print(dict1)

del dict1['name']
# print(dict1)

# max():最大值
# print(max(str1))
# print(max(list1))

# min() 最小值
# print(min(str1))
# print(min(list1))

# print(range(1,10,1))
# for i in range(1,10,1):
#     print(i)

# for i in range(1,10):
#     print(i)

# 如果不写开始,默认从0开始
# 如果不写步长,默认为1
# for i in range(1,10,2):
#     print(i)

# enumerate 返回结果是元组,元组第一个数据是原迭代对象的数据对应的下标,元组第二个数据是原迭代对象的数据
# for i in enumerate(list1):
#     print(i)

# for i in enumerate(list1,start=2):
#     print(i)


# tuple():转换成元组
# print(tuple(s1))
# print(tuple(list1))
# print(list(t1))
# print(list(s1))

# set():转换成集合
print(set(list1))
print(set(t1))

推导式

Python推导式是一种可以从一个数据序列构建另一个新的数据序列的结构体,它包括列表推导式、字典推导式、集合推导式和元组推导式等

Python推导式是一种独特的数据处理方式,其可以从一个数据序列构建另一个新的数据序列。具体来说,推导式包括列表(list)推导式、字典(dict)推导式、集合(set)推导式、元组(tuple)推导式等类型。

# while 实现
# list1 = []
# i = 0
# while i < 10:
#     list1.append(i)
#     i += 1
# print(list1)

# for 实现
# list1 = []
# for i in range(10):
#     list1.append(i)
# print(list1)

list1 = [ i for i in range(10)]
print(list1)

列表推导式是其中最常用的一种,其基本格式为:[表达式 for 变量 in 可迭代对象 if 条件]。这个结构允许你遍历一个可迭代对象(比如列表或字符串),并对每个元素应用一个表达式,最终生成一个新的列表。如果需要的话,还可以通过if语句添加过滤条件。例如,要创建一个包含1到100之间所有数字平方的列表,可以使用以下推导式:

# 1 列表推导式 range 步长
list1 = [i for i in  range(0,10,2)]
print(list1)

# 2.for 循环加if 创建有规律的列表
list2=[]
for i in range(10):
    if i % 2 ==0:
        list2.append(i)
print(list2)

# 3.把for 循环配合if的代码 改写带if的列表推导式
list3 = [i for i in range(0,10) if i % 2 ==0]
print(list3)

此外,还可以使用条件表达式来根据不同情况生成不同的元素。例如,生成一个列表,其中3的倍数的平方和其他数字本身交替出现,可以这样写:

#提取数据
counts = {'MBP':268,'HP':125,'DELL':201,'Lenovo':199,'acer':99}
# 1.需求:提取电脑台数大于等于200
# 获取所有键值对数据,判断V值大于等于200 返回字典
dict1 = {key:value for key,value in counts.items() if value >=200}
print(dict1)

list1=[]
for i in range(1,3):
    for j in range(3):
        # 列表里面追加元组:循环前准备一个空列表,然后这里追加元组数据到列表
        list1.append((i,j))

print(list1)

# 多个for实现列表的推导式
list2 = [(i,j) for i in range(1,3) for j in range(3)]

# 多for的列表推导式等同于for循环嵌套

list1 = ['name','age','gender']
list2 = ['tom',20,'man']

dict1 = {list1[i]:list2[i] for i in range(len(list2))}
print(dict1)

# 总结:
# 如果两个列表数据个数相同,len统计任何一个列表的长度都可以
# 如果两个列表数据个数不同,len 统计数据多的列表数据个数会报错,len统计数据少的列表数据个数则不会报错

list1 = [1,1,2]
set1 = { i ** 2 for i in list1}
# 集合有去重功能所以这个集合数据只有两个数据分别是1,4
print(set1)

在使用推导式时,需要注意一些事项以保证代码的清晰性和性能

虽然推导式可以使代码更加简洁和高效,但它们不适合编写过于复杂的逻辑。当推导式变得复杂时,可能会降低代码的可读性,这时应该考虑使用传统的循环结构或函数来代替。此外,推导式不仅可以用于创建新列表、集合和字典,还可以用来转换或筛选现有的数据结构。在大规模数据处理中,合理使用推导式可以提高代码运行速度和可读性,但在小规模数据操作中,性能差异可能不明显。

总之,推导式是Python中强大的工具,它可以简化代码并提高执行效率。但在使用时应注意保持代码的简洁性和可维护性,避免因过度复杂化而损害代码的可读性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值