Python——数据操作

该博客主要介绍Python数据类型,包括字符串、列表、元组、字典、集合。详细阐述各类型的特点、创建方式、常见操作方法,如字符串的查找、修改、判断,列表的增删改查等。还介绍了公共操作、容器类型转换及推导式等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

一、字符串

1.通用知识:

2.字符串切片:

(1).语法:

(2.)注意:

(3).示例代码

3.字符串的常用操作方法

(1).查找

3.1.1  find()

3.1.2  rfind()

3.1.3  index()

3.1.4  rindex()

3.1.5  count()

3.1示例代码             

(2).修改

3.2.1   replace()

语法:

注意:

3.2.2   split()  

语法:

3.2.3   join()

语法:

3.2.4   capitalize()

注意:

3.2.5   title()

3.2.5    lower()

3.2.6    upper()

3.2.7    lstrip()

3.2.8    rstrip()

3.2.9    strip()

3.2.10    ljust()

语法:

3.2.11    rjust()

3.2.12    center():

(3).判断

3.3.1    startswith():

语法:  

3.3.2    endswith():

语法: 

3.3.3    isalpha():

3.3.4    isdigit():                  

3.3.5    isalnum():

3.3.6    isspace();       

二、列表

注意:

判断数据是否存在:

1.查找数据:

            2.增加数据:增加指定数据到列表中

               3.删除数据:列表中删除数据             

4.修改数据:修改列表数据

示例代码1

示例代码2

示例代码3

列表的循环遍历

示例代码

列表嵌套

示例代码:

三、元组

1.注意:

2.元组的常见操作:  

                         2.1注意:

2.2合并元组

2.3示例代码

四、字典

1.字典特点: 

2.字典创建

2.1有数据字典创建方式  

2.2空字典创建

              3.字典常见操作:

3.1增加

                         3.2删除

  3.3修改

                        3.4查找

3.4.1    key值查找

3.4.2    get():  

3.4.3    keys():

3.4.4    values():

3.4.5    items():

五、集合

1.注意:

2.集合中常见的操作方法:

2.1增加数据:       

2.1.1 语法:

             2.2删除数据:

 2.2.1语法:

                             2.3查找数据:    

2.4.示例代码

六、公共操作

1.公共运算符:  

2.公共方法:

3.示例代码

七、容器类型转换

1.容器类型转换

2.推导式

2.1分类:

2.2.列表推导式

2.2.1作用:

2.2.2语法:

2.2.3示例代码

2.3字典推导式:  

2.3.1作用:

2.3.2区别

2.3.3两个列表合并为一个字典

2.3.3.1.注意:   

2.3.3.2示例代码

2.4集合推导式

2.4.1注意:



python数据类型分为可变数据类型和不可变数据类型!!!

可变类型和不可变类型是指:数据能够直接进行修改,如果能直接修改那么就是可变,否则就是不可变

可变类型: 列表,字典,集合     
不可变类型: 整型,浮点型,字符串,元组


一、字符串

字符串是python中最常用的数据类型,一般使用引号来创建字符串,创建字符串很简单,只需要为变量分配一个值即可。

创建字符串可以是单引号' ',双引号" ",三引号"""  """或者'''  '''

注意:

(1)单引号或双引号创建的字符串中间换行时,输出不会换行
(2)三引号创建的字符串支持回车换行,中间换行时,输出效果也会换行
(3)单引号中有单引号时会报错

解决方案:

1.用双引号或三引号创建字符串,与字符串内部的单引号区分开

2.字符串内部的单引号前面加转义符号\  比如  c = 'T\'m OK'

1.通用知识:

下标:又叫索引,就是编号,,下标从0索引开始   
作用:通过下标快速找到对应的数据
使用:与java数组类似    

如字符串 str1 = 'abcdefghi'
获取第一个 ;str1[0]
获取第二个 ;str1[1]
获取第三个 ;str1[2]

示例代码

i = ('abcde'
     'fghgjlk')
j = 'a'
k = ("wfewg"
     "wrger")
l = """wefwege
rdgerg"""
m = '''fewfwef
wefewf'''
print(f'i:{i},类型:{type(i)}')      #<class 'str'>
print(f'j:{j},类型:{type(j)}')      #<class 'str'>    python没有字符类型,只有字符串数据类型
print(f'k:{k},类型:{type(k)}')
print(f'l:{l},类型:{type(l)}')
print(f'm:{m},类型:{type(m)}')

print(f'获取字符串m的第二个字符:{m[1]}。和第三个字符:{m[2]}')




2.字符串切片:

是指对操作的对象截取其中一部分的操作。字符串,列表,元组都支持切片



(1).语法:

序列[开始位置下标:结束位置下标:步长]


(2.)注意:

1.不包含结束位置下标对应的数据,正负整数均可
2.步长是选取间隔,正负整数均可,默认步长为1,可不写.
3.如果不写开始下标,默认从0开始选取
4.如果不写结束下标,默认选取到最后
5.如果不写开始和结束下标,默认选取所有
6.如果步长为负数,表示倒序选取   从右至左    <------
7.下标表示最后一个数据,从右往左依次-1,-2,-3....
8.如果选取方向(下标开始到结束的方向)和步长的方向冲突,则无法选取数据

(3).示例代码

c = 'changanyuexia'
print(c[7:10:1])      # 输出yue  7索引是y, 10索引是x 但切片不包含结束为止下标,即仅到e,步长指的是7-10这部分内选取的间隔,而不是截取的总长度
print(c[::-1])        # 倒序
print(c[-7:-10:-1])   # 倒序截取
print(c[-4:-1:-1])    # 选取方向与步长方向冲突,无法选取到数据




3.字符串的常用操作方法

查找,修改,判断 三大类

(1).查找

3.1.1  find()

所谓字符串查找方法即是查找子串在字符串中的位置或出现的次数

find(): 检测某个子串是否包含在这个字符串中,存在即返回子串开始位置的下标,否则返回-1
语法:    字符串序列.find(子串,查找范围的开始位置下标,查找范围的结束位置下标)
注意:开始位置和结束位置下标可以省略,表示在整个字符串序列中查找

3.1.2  rfind()

rfind(): 和find()功能相同,但查找方向为右侧开始

3.1.3  index()

index():检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则报异常
语法:    

字符串序列.index(子串,开始位置,结束位置)    # 开始位置结束位置可忽略不写

3.1.4  rindex()

rindex(): 和index()功能相同,但查找方向为右侧开始

3.1.5  count()

count(): 返回某个子串在字符串中出现的次数
                        

3.1示例代码             
str1 = 'chang an yue xia'
s = str1.find('an')     # 未指定范围,在整个序列查找到第一次出现的位置
rs = str1.rfind('an')
print(f's={s},rs={rs}')
s1 = str1.find("an",3)   # 指定范围从第二次出现开始查找,未指定结束范围,表示从开始位置查找到末尾
print(s1)
i = str1.count("an")
print(f'an出现次数{i}')

 


(2).修改

所谓修改字符串,指的就是通过函数的形式修改字符串中的数据
字符串是不可变数据类型


3.2.1   replace()

替换:原有字符串不会改变,会返回一个新字符串

语法:

字符串序列.replace(旧子串,新子串,替换次数)

注意:

1.替换次数如果查出子串出现多次,则替换次数为该子串出现的次数 
2.替换次数如果超出了子串出现的次数,则表示替换所有的子串

3.2.2   split()  

按照指定字符分割字符串   返回值是一个序列

语法:

字符串序列.split(分割字符,num)   

# num表示分割字符出现的次数,即将来返回数据个数为num+1个         

3.2.3   join()

用一个字符或子串合并字符串,即将多个字符串合并为一个新字符串

语法:

字符或子串.join(多字符串组成的序列)

3.2.4   capitalize()

将字符串第一个字符转换成大写

注意:

capitalize()函数转换后,只字符串第一个字符大写,其他的字符全都小写

3.2.5   title()

将字符串每个单词首字母转换成大写
    

3.2.5    lower()

将字符串中的大写字母转小写        
  

3.2.6    upper()

将字符串中的小写字母转换成大写

3.2.7    lstrip()

删除字符串左侧空白字符
    

3.2.8    rstrip()

删除字符串右侧空白字符

3.2.9    strip()

删除字符串两侧空白字符
    

3.2.10    ljust()

返回一个原字符串左对齐,并使用指定字符(默认空格)填充至对应长度的新字符串

语法:

字符串序列.ljust(长度,填充字符)

3.2.11    rjust()

返回一个原字符串右对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
语法与ljust同

3.2.12    center():

返回一个原字符串居中对齐,并使用指定字符(默认空格)填充至对应长度的新字符串        
语法与ljust同

示例代码

newstr1 = str1.replace('an','xx',1)
newstr2 = str1.replace('an','xx',2)
newstr3 = str1.replace('an','xx',3)
print(f'newstr1={newstr1},\nnewstr2={newstr2},\nnewstr3={newstr3}')

str1 = 'changanyuexia'
newstr1 = str1.split('n',2)
print(f'newstr1={newstr1}')

biglist = ['aa','bb','cc']
newbiglist1 = '...'.join(biglist)
newbiglist2 = '000'.join(biglist)
print(newbiglist1)
print(newbiglist2)

str1 = '   hell word I\'am changAn '
print(str1)
print(str1.capitalize())
print(str1.title())
print(str1.lower())
print(str1.upper())
print(str1.lstrip())
print(str1.ljust(100,'!'))
print(str1.rjust(100,'!'))
print(str1.center(100,'!'))



 


(3).判断



所谓判断就是判断真假,返回的结果是布尔型数据类型:True或False

3.3.1    startswith():

检查字符串是否是以指定的子串开头,是则返回True 否则False
如果设置了开始和结束下标,则在指定范围内检查

语法:  

startswith(子串,开始位置下标,结束位置下标)

3.3.2    endswith():

检查字符串是否是以指定的子串结尾,是则返回True 否则False
如果设置了开始和结束下标,则在指定范围内检查

语法: 

endswith(子串,开始位置下标,结束位置下标)

3.3.3    isalpha():

如果字符串至少有一个字符并且所有字符都是字母则返回True 否则False

3.3.4    isdigit():                  

如果字符串只包含数字则返回True 否则返回False
      

3.3.5    isalnum():

如果字符串至少有一个字符并且所有字符串都是字母或者数字,则返回True,否则返回False

3.3.6    isspace();       

如果字符串中只包含空白,则返回True,否则返回False                         
                    


二、列表

列表可以一次性存储多个数据,且可以是不同的数据类型    

[数据1,数据2,数据3,数据4……]

一般尽量存储相同数据类型的数据---便于操作



注意:

列表是可变数据类型

下标与字符串同!

列表的常用操作:增删改查


判断数据是否存在:

in: 判断指定数据早某个列表序列,在则True

格式: 数据 in 列表


not in: 判断指定数据不在某个列表,不在则返回True       


1.查找数据:

index(数据,开始下标,结束下标): 返回指定数据所在位置的下标 ,后两个参数为查找范围不存在则报错


count(数据): 统计指定数据在当前列表中出现的次数  

len(列表): 访问列表长度,即列表中数据的个数

            
2.增加数据:增加指定数据到列表中

append(): 列表结尾追加数据,如果数据是一个序列列表,则追加整个序列到列表(列表嵌套)    
语法: 列表.append(数据)
                  
extend(): 列表结尾追加数据,如果数据是一个序列,则将这个序列的数据逐一添加到列表(还是一个列表)
语法: 列表.extend(数据)

insert(): 指定位置新增数据    如果指定位置有数据了,则原来数据后移一位
语法: 列表.insert(位置下标,数据)         

               
3.删除数据:列表中删除数据
             

del 列表: 删除列表   

例如: del namelist
                  
pop(): 删除指定下标的数据(若不指定下标默认为删除最后一个数据),并返回该数据
语法: 列表.pop(下标)                        
                        
remove(): 移除列表中某个数据的第一个匹配项(如果有重复数据的话)     
语法: 列表.remove(数据)      

clear(): 清空列表 


4.修改数据:修改列表数据

直接用索引修改,例如: 列表[索引] = '新值'                            

reverse(): 逆置     将列表中的数据逆序排列
语法:  列表.reverse()
                            
sort(): 排序    
语法: 列表.sort(key=None,reverse=False)
注意:

        reverse表示排序规则,reverse=True表示降序,reverse=False表示升序(默认)
        如果列表中有字典,排序要按照字典的某个key值排序,就需要用到key参数,否则无须 
                               
copy(): 复制序列列表   返回值是一个重复的列表  
语法: 列表_1 = 列表.copy()
场景:

        修改数据时一般备份数据,保留原始数据    
        工作中删除数据时一般先复制备份 

示例代码1

li = [1,2,3,4,5,6,7,8,'an']

print(li.index('an',0,9))
print(li.count(4))
print(len(li))

print(2 in li)
print('an' in li)
print('aaaa' in li)
print(2 not in li)
print('aaaa' not in li)

示例代码2


# 查找输入的名字是否存在   可用来判断输入的账号是否存在,存在则提示登录,不存在则提示创建
namelist = ['张三','李四','王五','李二','李星云','姬如雪','大帅']
name = input('输入查找的名字\n')
if name in namelist:
    print(f'名字存在,输入的是{name}')
else:
    print('输入的名字不存在')
'''
'''
# 创建账号
addresslist = ['123','456','789','147']
print(addresslist)
address = input('输入账号:\n')
while True:
    if address in addresslist:
        print('账号已经存在,请跳转登录')
        break
    else:
        newaddress = input('账号不存在,请先创建账号:')
        if newaddress not in addresslist:
            addresslist.append(newaddress)        #增加数据
            if newaddress in addresslist:
                print('账号创建成功')
                break
            else:
                print('账号创建失败,返回首页!')
        elif newaddress in addresslist:
            print('账号已经存在,请跳转登录')
            break
print(addresslist)

示例代码3

nlist = ['123','456','789','147']
print(nlist)
nlist.insert(0,'新增')
print(nlist)
dele =  nlist.pop(0)
print(f'{nlist},删除了:{dele}')

nlist.insert(0,'123')
print(nlist)
nlist.remove('123')
print(nlist)
nlist.clear()
print(nlist)

a = [1,3,6,9,2,4,7,8,3,67,8]
print(a)
a.sort()   # 默认False升序
print(a)
a.sort(reverse=True)  # 修改为降序True
print(a)

copya = a.copy()
print(a)
print(copya)

        
                          
                                              



 

列表的循环遍历

while i < len(list):
      print(list[i])
      i+=1
      
for i in list:
      print(i)    
 

示例代码

a = [1,2,3,5,76,9,0,6,4,2,4,65,8,9,54,342,5,5,7,4,342,]

# while循环遍历列表
i=0
while i < len(a):
    print(a[i],end=" ")
    i+=1
print()
# for循环遍历列表
i=0
for i in a:
    print(i,end=" ")





列表嵌套

列表嵌套:就是一个大列表中装了若干小列表,列表之间又互相嵌套

如何查找嵌套列表里面的深层列表

  

例如: a = [1,[1.2.3,[4.5.6]],7,8,9]  查找6

1.先找到列表里面最外层列表对应的索引值 a[1]
2.再查找里层列表的索引值 a[1][3]
3.以此类推。。。。。。a[1][3][2]

示例代码:

a = [1, [1,2,3, [4,5,6]], 7, 8, 9]
print(a[1][3][2])   # 6

#  将8位老师随机分配到三个办公室内
teachers = ['A','B','C','D','E','F','G','H']   # 表示8位老师
offices = [[],[],[]]    # 表示三个办公室
for teacher in teachers:
    ran = random.randint(0,2)   # 范围0-2 即0,1,2
    offices[ran].append(teacher)
print(offices)
# 分别打印每一个办公室
for office in offices:
    print(f'{office},办公室人数{len(office)},老师分别是:')
    for teacher in office:
        print(teacher)





三、元组

元组:元组可以一次性存储多个数据,但元组内的数据是不能更改的  

组----不可变数据类型元


元组用()创建,并用逗号隔开各个数据,数据可以是不同数据类型  

例如:

 a = (1,'ada',3.1,)  创建一个元组a

多个数据元组:  t1 = (10,20,30)
单个数据元组:  t2 = (10,)



1.注意:

如果定义的元组只有一个数据,那么这个数据后面也必须添加逗号,否则数据类型为唯一的
 

示例代码

a = []
print(type(a))   # <class 'list'>
b = ()
print(type(b))   # <class 'tuple'>
t1 = (10)
print(type(t1))  # <class 'int'>
t2 = (10,)
print(type(t2))   # <class 'tuple'>
t3 = ("abc")
print(type(t3))   # <class 'str'>
t4 = ("abc",)
print(type(t4))   # <class 'tuple'>




2.元组的常见操作:  

元组不支持修改数据(不可变型),仅支持查找数据(按下标查找)
               

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

          
               
2.1注意:

元组内的直接数据,如果修改则立即报错
但是如果元组内有列表,修改列表里面的数据则是支持的
故若元组中需要放入可修改数据,可在元组内加入列表            


2.2合并元组

另类的元组添加数据方式 ----用加号将两个元组连接起来

a1 = (10,20,30,40)
b1 = (50,60,70,80,90)
c = a1 + b1
print(c)           

2.3示例代码

a = (10,20,30,40,50,10,10)
print(a.index(20))
print(a.count(10))

b = (10,20,30,['A','B','C','D'],40,50)
print(b)
b[3][0]  = '修改'       # 修改元组内的列表第一个数据源
print(b)
print(f'b的长度为:{len(b)}')

# 合并元组-----另类的元组添加数据方式
a1 = (10,20,30,40)
b1 = (50,60,70,80,90)
c = a1 + b1
print(c)



四、字典

字典为可变类型


字典:字典里面的数据是以键值对形式出现,字典数据和数据顺序没有关系,即字典不支持下标
后期无论数据如何变化,只需要按照对应的键的名字查找数据即可


1.字典特点: 

1.符号为大括号
2.数据为键值对形式出现
3.一个字典可放多个键值对,各个键值对之间用逗号隔开

2.字典创建

2.1有数据字典创建方式  

dict1 = {'name':'Tom','age':'20','gender':'男'}

2.2空字典创建

有两种创建方式:
1.  dict2 = {}   
2.  dict3 = dict()       


              
3.字典常见操作:


3.1增加

字典中新增数据     

写法:

字典序列[key] = 值

注意:如果key存在则修改这个key对应的值,如果key不存在则新增此键值对                         

                         
3.2删除

del() / del : 删除字典或删除字典中指定的键值对
clear(): 清空字典

  
3.3修改

写法:

字典序列[key] = 值   (与增加数据相同)

注意:如果key存在则修改这个key对应的值,如果key不存在则新增此键值对

                        
3.4查找

3.4.1    key值查找

如果当前查找的key值存在,则返回对应的值,否则报错
例如:print(dict1['name'])   # 返回name对应的值

3.4.2    get():  

语法:

字典序列.get(key,默认值)

注意:如果当前查找的key值不存在则返回第二个参数(默认值),如果省略第二个参数不写则返回None               

3.4.3    keys():

返回可迭代对象(所有的键)

3.4.4    values():

返回可迭代对象(所有的值)

3.4.5    items():

查找字典中所有的键值对,返回可迭代对象,里面的数据是元组 ,元组[0]是key键,元组[1]是值

示例代码

# 创建有数据字典
dict1 = {'name':'Tom','age':'20','gender':'男'}
print(dict1)
print(type(dict1))    # <class 'dict'>

# 创建空字典
dict2 = {}
dict2_1 = dict()
print(f'{dict2},{type(dict2)}')      # {},<class 'dict'>
print(f'{dict2_1},{type(dict2_1)}')  # {},<class 'dict'>

dict1['name'] = 'Rose'   # 修改
print(dict1)
dict1['weight'] = '80'   # 添加
print(dict1)

# key值查找
print(dict1['name'])
# get():
c = dict1.get('id','找不到')
c1 = dict1.get('id')
print(c)
print(c1)

# keys()  values()  items
print(dict1.keys())
print(dict1.values())
print(dict1.items())




#遍历字典

for key in dict1.keys():  # 遍历字典的键
    print(key,end=" ")
print()
for value in dict1.values(): #  遍历字典的值
    print(value,end=" ")
print()
for item in dict1.items():  # 遍历字典的元素(键值对)
    print(item)

for key,value in dict1.items():    # 遍历字典的键值对并以指定格式显示
    print(f'{key}={value}')




五、集合

创建集合使用{}或者set()
但是如果要创建空集合只能用set(),因为{}表示用来创建空字典

字典与集合都是{}表示,但字典中存入的是键值对,集合中存入的是单个数据


集合------去重:集合中不能有重复的数据,如果需要去重就存入集合.
 

1.注意:

集合不支持下标!!!!!!集合中的数据是无序的



2.集合中常见的操作方法:

2.1增加数据:       

add():      

2.1.1 语法:

集合.add(数据)

集合有去重功能,所以当向集合中追加的数据是当前集合已有的数据时,则不会进行任何操作

update():   追加的数据是序列[]          

   

             
2.2删除数据:

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

 2.2.1语法:

集合.remove(数据)

discard():  删除集合中的指定数据,如果数据不存在也不会报错

pop():      随机删除某个数据,并返回删除的数据
语法: 删除的数据 = 集合.pop()

                             
2.3查找数据:    

in:  判断数据在集合序列  返回值是boolean
not in: 判断数据不在集合序列  返回值是boolean

例如: print( 10 in s )   # 判断10是否在集合s中

2.4.示例代码

a = set()    # 创建空集合
print(type(a))      # <class 'set'>

a = set('aifuu')
print(a)

b = {10,20,30,40,50,60,10}   # 重复的数据无法存入,会自动丢弃一个重复的
print(b)                     # {40, 10, 50, 20, 60, 30}

p = b.pop()
print(b)
print(p)

print(10 in b)
print(10 not in b)




六、公共操作

1.公共运算符:  

运算符           描述                   支持的容器类型
+                    合并                   字符串、列表、元组                  
*                    复制                    字符串、列表、元组  
in               元素是否存在         字符串、列表、元组、字典  
not in         元素是否不存在     字符串、列表、元组、字典  


2.公共方法:

len():       计算容器中元素个数


del或del():   删除


max():      返回容器中元素的最大值


min():      返回容器中元素的最小值


range(start,end,step):  生成从start到end的数字,步长为step,供for循环使用
包头不包尾(生成的数字不包含end)  


enumerate():   函数用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用于在for循环中

语法: 

enumerate(可遍历对象,start=0)
注意:start参数用来设置遍历数据的下标的起始值,默认为0.
简单理解:就是将序列内元素添加一个编号即索引后将其返回成一个元组
元组第一个数据是原迭代对象的数据对应的下标
元组第二个数据是原迭代对象的数据

3.示例代码

str1 = 'a'
newstr = str1*5
print(newstr)

a = [10,20]
b = a*5
print(b)

c = (10,)
d = c*5
print(d)

# 批量复制符号
print('@'*10)

s = 'changanyuexia'
print('an' in s)

# range()实验
for r in range(10,20,1):
    print(r,end=" ")

print()
# max()   min() 实验
a = [1,2,3,5,8,9,3,5]
print(max(a))
print(min(a))

# enumerate()实验
j = [10,23,54,675,7,234,2,23,4,45,6]
for i in enumerate(j):
    print(i,end=" ")
print()
for index,i in enumerate(j,start=0):
    print(f'索引:{index},对应的值{i}')

y = {10, 20, 30, 40, 50, 60}
for i in enumerate(y, start=1):
    print(i, end=" ")


七、容器类型转换


1.容器类型转换

tuple():    作用:将某个序列转换成元组
 list():     作用: 将某个序列转换成列表
set():      作用:  将某个序列转换成集合


2.推导式


2.1分类:

列表推导式
字典推导式
集合推导式


2.2.列表推导式

2.2.1作用:

 用一个表达式创建一个有规律的列表或者控制一个有规律列表(化简代码)

列表推导式又叫列表生成式

2.2.2语法:

 list1 =  [i for i in range(10,20)]        此时第一个i为前面for循环的返回值

2.2.3示例代码
list1 = [i for i in range(10, 20)]
print(list1)


带if的列表推导式
需求: 创建0-10的偶数列表
    方法一: range()步长实现
          [ i for i in range(0,10,2)]
    方法二: if 实现
          [ i for i in range(10) if i%2 == 0]




多个for循环实现列表推导式
语法事例: list2 = [(i,j) for i in range(1,3) for j in range(0,3)]
此时相当于两个for循环嵌套。前面的i为第一个循环的返回值,j为第二个循环的返回值





list2 = [(i, j) for i in range(0, 3) for j in range(0, 3)]  # 第一个循环0,1,2。第二个循环0,1,2
print(list2)





2.3字典推导式:  

2.3.1作用:

1.快速合并列表为字典或提取字典中目标数据
2.两个列表合并为一个字典
3.提取字典中目标数据               

2.3.2区别

字典推导式的返回值中间的符号为冒号:。
列表推导式的返回值为等号=。  



2.3.3两个列表合并为一个字典
2.3.3.1.注意:   

1. 如果两个列表数据个数相同,len统计任何一个列表长度均可以
2. 如果两个列表数据个数不同,len统计数据个数多的列表则报错,len统计数据个数少的列表不会报错

2.3.3.2示例代码
dict1 = {i: i ** 2 for i in range(1, 5)}
print(dict1)

#  两个列表合并为一个字典
l1 = ['name', 'age', 'weight']
l2 = ['张三', '23', '80']
d = {l1[i]: l2[i] for i in range(len(l1))}
print(d)

# 提取字典中目标数据  提取value值大于等于350 的键值对
l3 = {'A': 100, 'B': 300, 'C': 800, 'D': 500, 'E': 200, 'F': 350}
d1 = {key: value for key, value in l3.items() if value >= 350}
print(d1)



2.4集合推导式


2.4.1注意:

集合有数据去重功能


例如: 创建集合,数据为下方列表的2次方

list1 = [1,1,2]
set1 = { i**2 for i in list1}   # {1,4}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值