Python操作Excel基础

一、使用PythonExcel读写数据

1.模块、包、库概念

  • Module(模块):扩展名为.py的文件就可以称作为模块
  • Package(包):在模块只上的概念,为了方便管理.py模块文件进行打包。包目录下第一个文件必须是_init_.py,否则就是普通的文件夹目录,然后是一些模块文件和子目录,加入子目录中也有_init_.py,那么它就是这个包的子包了
  • Library(库):具有相关功能模块的集合。这也是Python的一大特色,即具有强大的标准库、第三方库以及自定义模块
  • 标准库:就是安装Python是自自带的模块
  • 第三方库:就是由第三方机构发布,具有特定功能的模块,用户也可以自行开发模块供自己和他人使用

2.Excel读取库xlrd

  • 导入模块的格式:import+模块名
  • 导入xlrdimport xlrd,也可以使用别名命名方式import xlrd as xl,后续可以用xl代表xlrd模块
  • 调用的格式为:from+模块名+import+方法名
  • 导入xlrd模块中的open_workbook,写法为:from xlrd import open_workbook as owb,后续可以直接使用owb代表open_workbook工作薄对象
  • ''注意:xlrd只能读取xls格式工作薄数据

3.读取Excel工作薄、工作表信息

  • 在导入读取xls文件的库之后,则需要读取Excel文件的相关信息,以下是一些常见的获取工作薄、工作表对象的方法:
# 导入xlrd模块
import xlrd
# 读取工作薄
wb = xlrd.open_workbook('工作薄名称.xls')
# 读取工作薄下的所有工作表对象
wsobj = wb.sheets()
# 读取工作薄下的所有工作表名称
wsname = wb.sheet_names()
# 按指定名称读取工作表对象-方法1
ws1 = wb.sheet_by_name('工作表名称')
# 按指定序号读取工作表对象-方法2
ws2 = wb.sheet_by_index(1)
# 按指定序号读取工作表对象-方法3
ws3 = wb.sheets()[1]

4.读取Excel行、列信息

  • 常用获取行、列、单元格信息的方法:
# 导入xlrd模块
import xlrd
# 获取工作表对象
ws = xlrd.open_workbook('工作薄名.xls').sheet_by_name('工作表名')
# 获取行号
crow = ws.nrows
# 获取列号
ccol = ws.ncols
# 获取指定行数据
row_data = ws.row_values(行号)
# 获取指定列数据
col_data = ws.col_values(列号)
# 获取单元格数据
cell_data_1	 = ws.cell_value(行号,列号)
# 获取单元格数据
cell_data_2 = ws.cell(行号,列号).value
  • 注意:如果以序号方式获取工作表、单元格的数据,均是从序号0开始的

5.Excel写入库xlwt

  • 使用安装xlwt库,具有创建工作薄、工作表、将数据写入到单元格的功能

6.创建Excel工作薄、工作表和写入单元格

  • xlwt可以创建工作薄、保存工作薄,创建工作表以及将数据写入单元格等常见操作
# 引入xlwt模块
import xlwt
# 新建工作薄
nwb = xlwt.Workbook(encoding = 'utf-8')
# 添加工作表
nws = nwb.add_sheet('工作表名')
# 写入单元格,(第二行,第三列,值)
nws.write(1, 2, '要写入的值')
# 保存工作薄
nwb.save('工作薄名.xls')

7.Excel修改库xlutils

  • xlutils可以修改工作薄,要使用xlutils库就一定要安装xlrd库和xlwt

8.修改工作薄、工作表、单元格

# 导入xlrd模块
import xlrd
# 导入xlutils中的复制模块
from xlutils.copy import copy
# 获取要修改的工作薄
wb = xlrd.open_workbook('工作薄名.xls')
# 复制工作薄
nwb = copy(wb)
# 新建工作表
nws1 = nwb.add_sheet('工作表名')
# 读取工作表
nws2 = nwb.get_sheet(序号)
# 读取工作表
nws3 = nwb.get_sheet('工作表名')
# 将数据写入指定工作表
nws1.write(行号, 列表, '值')
# 保存工作薄
nwb.save('工作薄名.xls')
  • 注意,最后nwb.save保存的工作薄可以和打开时工作薄名一样,也可以不一样,如果一样,则是覆盖原工作薄,不一样则是另存工作薄。代码运行时,被修改的工作薄必须关闭。

二、循环语句与分支语句

1.for...in循环语句

  • 语法格式
for item in iterable:
    do something
(1)循环字符串
  • for循环语句除了遍历指定范围的序列值,也可以遍历向指定的字符串,将字符串中的每个字符逐个输出
for n in 'python':
    print(n)
(2)循环指定范围序列数
  • 如果我们要循环指定范围的数据,可以使用range函数,一般通过使用for循环语句来逐个取得数字
  • range函数语法为:range(start, stop, [step])
    • start:计数从start开始,默认是从0开始
    • stop:技术到stop结束,但不包括stop
    • step:步长,默认是1
for n in range(1, 10, 2):
    print(n)
# 输出1 3 5 7 9
(3)嵌套循环
  • for循环与局可以嵌套使用,但每一层for循环语句注意缩进,下面使用for嵌套循环方式完成九九乘法表的制作
for x in range(1, 10):
    for y in range(1, x+1):
        print('%dx%d=%-5d' % (y, x, y * x), end = '')

2.for...in循环语句应用

(1)批量创建工作薄
  • 实例:使用for循环语句创建1到12月工作薄,每个工作薄中创建一个名为统计表的工作表
import xlwt
for m in range(1, 13):
    # 创建工作薄
    wb = xlwt.Workbook(encoding = 'utf-8')
    # 创建工作表,工作薄中至少要有一个工作表
    wb.add_sheet('统计表')
    wb.save('%02d 月.xls' % m)
(2)制作九九乘法表
  • 实例:将九九乘法表写入Excel表格中,只需要定位好对应的单元格,然后将格式化好的数据写入单元格即可
import xlwt
# 创建工作薄
wb = xlwt.Workbook(encoding = 'utf-8')
# 创建工作表
ws = wb.add_sheet('乘法表')
for x in range(1, 10):
    for y in range(1, x + 1):
        # 将乘法表写入单元格
        ws.write(x, y, '%dx%d=%d' % (x, y, x * y))
# 保存工作薄
wb.save('乘法表.xls')

3.while循环语句

  • 语法格式
while condition:
    do something
  • 循环打印
n = 0
while n < 5:
    n += 1
    print(n)
# 打印1 2 3 4
  • 嵌套语句,制作九九乘法表
x, y = 0, 0
while x < 9:
    x += 1
    while y < x:
        y += 1
        print('%dx%d=%02d\t' % (y, x, x * y), end = '')
    # 将内变量初始化为0,方便下一次内层循环又从0开始
    y = 0
    # 换行
    print('')

4.while循环语句应用

(1)读取工作薄信到列表
  • 实例:将”招生表.xls“工作表下的所有工作表名称写入”统计结果.xls“工作薄下的“统计表”,并且哥每个工作表编写一个序号
import xlrd, xlwt
wb = xlrd.open_workbook('招生表.xls')
nwb = xlwt.Workbool(encoding = 'utf-8')
nws = nwb.add_sheet('统计表')
n = 0
# 当n小于工作表个数则循环
while n < wb.sheets().__len__():
    # 将序号写入第1列
    nws.wirte(n, 0, '表%d' % n)
    # 将工作薄下表明写入第2列
    nws.wirte(n, 1, wb.sheets()[n].name)
    n += 1
nwb.save('统计结果.xls')
(2)批量创建工作薄、工作表
  • 实例:新建20152018年工作薄文件,每个工作薄文件中再分别新建112月的工作表
import xlwt
y, m = 2015, 1
while y <= 2018:
    nwb = xlwt.Workbook(encoding = 'utf-8')
    while m<= 12:
        nwb.add_sheet('%d年%d月' % (y, m))
        m += 1
    nwb.save('%d年.xls' % y)
    y +=1
    m = 1

5.if条件语句

  • 语法格式
if conditional test:
    do something
  • 判断分数
# 输入要判断分数
score = input('请输入分数:')
# 将字符型数字转换为整数
score = int(score)
if score > 90:
    print('优秀')

6.if...else条件语句

  • 判断分数大于等于90分,返回“优秀”,否则返回“普通”
score = input('请输入分数:')
score = int(score)
if socre > 90:
    print('优秀')
else: 
    print('普通')

7.if语句应用

(1)将筛选结果写入新工作薄
  • 实例:将指定工作薄指定工作表下语文、数学两列成绩同时大于等于80的记录写入新工作薄
import xlrd, xlwt
wb = xlrd.open_workbook('成绩表.xls')
ws = wb.sheet_by_name('分数表')
nwb = xlwt.Workbook(encoding = 'utf-8')
nws = nmb.add_sheet('结果')
n, m = 0, 0
while n < ws.nrows - 1:
    n += 1
    # 判断两科成绩是否大于等于80分
    if ws.cell_value(n, 1) >= 80 and ws.cell_value(n, 2) >= 80:
        # 累加m变量,作为条件成立时写入的行号
        m += 1
        # 写入姓名
        nws.write(m, 0, ws.cell_value(n, 0))
        # 写入语文成绩
        nws.write(m, 1, ws.cell_value(n, 1))
        # 写入数学成绩
        nws.write(m, 2, ws.cell_value(n, 2))
# 写入标题
nws.write(0, 0, '姓名')
nws.write(0, 1, '语文')
nws.write(0, 2, '数学')
nwb.save('筛选结果.xls')
(2)根据总分判断等级
  • 实例:判断语文和数学两个科目之和时属于哪个级别
import xlrd
from xlutils.copy import copy
wb = xlrd.open_workbook('成绩单.xls')
ws = wb.sheet_by_name('分数表')
# 复制读取工作薄
nwb = copy(wb)
# 读取工作表
nws = nwb.get_sheet('分数表')
n = 0
while n < ws.norws - 1:
    n += 1
    # 将语文和数学成绩相加
    subtotal = ws.cell_value(n, 1) + ws.cell_value(n, 2)
    if subtotal >= 180:
        nws.write(n, 3, '优秀')
    elif subtotal >= 160:
        nws.write(n, 3, '良好')
    elif subtotal >=120:
        nws.write(n, 3, '中等')
    else:
        nws.write(n, 3, '差')
nwb.save('成绩表.xls')
8.break语句
  • 终止break语句所在的循环,当循环或判断之行动break语句时,即使判断条件为True或者序列尚未完全被遍历,都会跳出循环或判断
  • for循环语句中的break应用
for c in 'abcdefg':
    if c == 'd':
        # 跳出当前for循环
        break
    else:
        print(c)
  • while循环语句中的break应用
n = 0
while True:
    n += 1
    if n == 5:
        break
    else:
        print(n)

9.continue语句

  • 当循环或判断执行到continue语句时,continue后的语句将不再执行,会跳出当次循环,继续执行循环中的下一次循环
  • for循环语句中的continue应用
for c in range(1, 11):
    if c ==5:
        print('我是5')
        # 跳出当次循环,不再执行此语句之后的语句,继续下一次循环
        continue
    print(c)
  • while循环语句中的continue应用
n = 0
while n < 6:
    n += 1
    if n == 3:
        print('我是3')
        # 跳出当次循环,不再执行此语句之后的语句,继续喜爱次循环
        continue
    print(n)

10.综合应用

  • 实例:要求统计出业绩表中每个人的累计业绩,大于等于1000表示达标,需要统计出开始达标的月份以及业绩
import xlrd
from xlutils.copy import copy
wb = xlrd.open_workbook('业绩表.xls')
# 读取工作薄下的业绩统计工作表
ws = wb.sheet_by_name('Sheet1')
# 复制工作薄
nwb = copy(wb)
# 读取工作薄下的统计结果工作表
nws = nwb.get_sheet('统计结果')
subtotal, n = 0, 0
# 遍历行号
for r in range(1, ws.nrows):
    # 遍历列号
    for c in range(1, 13):
        # 累加业绩数据
        subtotal += ws.cell_value(r, c)
        if subtotal >= 1000:
            n += 1
            # 将姓名写入单元格
            nws.write(n, 0, ws.cell_value(n, 0))
            # 将月份写入单元格
            nws.write(n, 1, '%d月份' % c)
            # 将业绩写入单元格
            nws.write(n, 2, subtotal)
            # 退出当前循环
            break
    # 重置变量
    subtotal = 0
nwb.save('业绩表.xls')

三、字符串处理技术

1.字符串切片

  • 字符串时最常用的一种数据类型,Python中的字符串时不能修改的,只能做提取、拆分、合并重组等操作
(1)提取单个字符
  • 提取字符串中指定的位置的单个字符,表示方式为:str[位置],既可以从开头计算,也可以从结尾计算
  • 从开头计算单个字符的表示方法
str = 'Excel'
print(str[0], srt[2])
# 返回值为:E c
  • 从结尾提取单个字符的表示方法:
str = 'Excel'
print(str[-1], str[-2])
# 返回值为:l e
(2)提取多个字符
  • 提取字符串中某一段字符的表示方式为:str[开始位置:结束位置]
str = 'Excel'
# 从左计算:指定的起始位置到指定的终止位置
print(str[1:3]) # 返回值:xc
# 从左计算:从开头提取到指定位置
print(str[:3]) # 返回值:Exc
# 从左计算:从指定的其实位置到结束
print(str[2:]) # 返回值:cel
# 从右计算:指定的其实位置到指定的终止位置
print(str[-3:-1]) # 返回值:ce
# 从右提取:指定的其实位置到结束
print(str[-3:]) # 返回值:cel
# 提取所有字符串
print(str[:]) # 返回值:Excel
  • 字符串提取还可以设置步长值,表示方式为:str[开始位置:结束位置:步长值]

2.字符串切片应用

(1)整理工作表数据
  • 将成表工作薄分数表中的第1列的部门和姓名分别提取到新工作博中的不同列
import xlrd, xlwt
wb = xlrd.open_workbook('成绩表.xls')
ws = wb.sheet_by_name('分数表')
nwb = xlwt.Workbook(encoding='utf-8')
nws = nwb.add_sheet('Sheet1')
n = 0
# 循环分数表中第1列的数据
for c in ws.col_vlaues(0):
    # 提取第1列中的部门数据,并写入
    nws.write(n, 0, c[:3])
    # 提取第1列中的姓名数据,并写入
    nws.write(n, 1, c[4:])
    # 提取第2列的数据
    nws.write(n, 2, ws.cell_value(n, 1))
    n += 1
nwb.save('结果表.xls')

3.字符串长度(个数)统计

(1)len
  • len方法返回对象(字符、列表、元组等)长度或项目个数
print(len('Excel')) # 返回值为5
(2)count
  • count方法用于统计字符串里指定字符串出现的次数,可选参数为在字符串搜索的开始与结束位置
  • 语法格式:str.count(sub, start=0, end = len(string))
    • str:被搜索的父字符串
    • sub:搜索的子字符串
    • start:字符串开始搜索的位置。默认为第一个字符,第一个字符索引值为0
    • end:字符串中结束搜索的位置。字符中第一个字符的索引为0。默认为字符串的最后一个位置
s = '销售部-张三,财务部-李四,销售部-王五,销售部-琳琳'
print(s.count('销售部')) # 统计销售部在字符串出现的次数
print(s.count('销售部'), 5) # 指定搜索字符串的起始位置
print(s.count('销售部', 5, 18)) # 指定搜索字符串的起始和结束位置
  • 实例:分别统计“优,良,中,差”4个等级出现的次数
import xlrd
wb = xlrd.open_workbook('等级表.xls')
ws = wb.sheet_by_name('Sheet1')
n, m = 0, 0
for l in '优良中差':
    # 循环行号
    while n < ws.nrows - 1:
        n += 1
        # 累加等级次数
        m += ws.cell_value(n, 1).count()
    print(m) # 打印等级出现的次数
    n, m = 0, 0

4.字符串查找

(1)index
  • index方法用于从字符串中找出某个对象第一个匹配项的索引位置,如果查找的字符串不存在会报一个异常
  • 语法格式:str.index(sub, [start = 0], [end = len(str)])
    • str:父字符串
    • sub:指定检索的子字符串
    • start:可选参数,开始索引,默认为0(可单独指定)
    • end:可选参数,结束索引,默认为字符串的长度(不能单独指定)
s = 'A组89,B组98,C组100,D组78,B组74'
print(s.index('B组')) # 返回每一个匹配项的索引位置
print(s.index('B组', 6)) #指定查找的起始位置
print(s.index('B组', 6, 15)) # 指定查找的起始位置和终止位置,不存在查找字符,抛出异常
(2)find
  • find方法从字符串中找出某个子字符串,第一个匹配项的索引位置,该方法与index方法一样,如果子字符串不在字符串中不会报异常,而是返回-1
  • 实例:统计等级“优”在下半年数量
import xlrd
from xlutils.copy import copy
wb = xlrd.open_workbook('等级表.xls')
ws = wb.sheet_by_name('Sheet1')
nwb = copy(wb)
# 读取工作表数据
nws = nwb.get_sheet('Sheet1')
n = 0
while n < ws.nrows - 1:
    n += 1
    # 获取要处理的单元格
    s = ws.cell_value(n, 1)
    # 将统计结果写入单元格
    nws.write(n, 2, s.count('优', s.find('\n')))
nwb.save('等级表.xls')

5.字符串的替换

  • replace方法用于把字符串中指定的就子字符串替换成指定的新子字符串,如果指定count可选参数则替换指定的次数,默认全部替换
  • 语法格式:str.replace(old, new, [count = str.count(old)])
    • old:指定的就子字符串
    • new:指定的新子字符串
    • count:可选参数,替换的次数,默认为指定的旧子字符串在字符串中出现的总次数
S = 'A组-优秀;B组-良好;C组-优秀;D组-优秀'
print(S.replace('优秀', '(晋级)'))
# 返回值为:A组-(晋级);B组-(晋级);C组-(晋级);D组-(晋级)
print(S.replace('优秀', '(晋级)', 1))
# 返回结果为:A组-(晋级);B组-良好;C组-优秀;D组-优秀
print(S.replace('优秀', '(晋级)', 2))
# 返回结果为:A组-(晋级);B组-良好;C组-(晋级);D组-优秀
  • 实例:将编号两侧的横线用括号替换
import xlrd
from xlutils.copy import copy
wb = xlrd.open_workbook('等级表.xls')
ws = wb.sheet_by_name('Sheet1')
# 复制工作薄
nwb = copy(wb)
nws = nwb.get_sheet('Sheet1')
n = 0
while n < ws.nrows - 1:
    n += 1
    # 读取需要替换的单元格值
    val = ws.cell_vlaue(n, 0)
    # 将格式为“产品A-NED001-5478-8848”的值替换为“产品A(NED001)5478-8848”
    nws.write(n, 1, val.replace('-', '(', 1).replace('-',')', 1))
nwb.save('替换格式等级表.xls')

6.字符串的拆分与合并

(1)split
  • split方法拆分字符串。通过指定分隔符对字符串进行切片,并返回分割后的字符串列表list
  • 语法格式:str.split(str = '', num = string.count(str))
    • str:表示为分隔符,默认为空格,但是不能为空(''),若字符串中没有分隔符,则把整个字符串作为列表的一个元素
    • num:表示分割次数。如果存在参数num,则仅分隔成num+1个子字符串,并且每个子字符串可以付给新的变量
s = '张三、李 四、王二  麻子、小明'
print(s.split()) # 返回值:['张三、李', '四、王二', '麻子、小明']
print(s.split('、')) # 返回值:['张三', '李 四', '王二  麻子', '小明']
print(s.split('、', 2)) # 返回值:['张三', '李 四', '王二  麻子、小明']
print(list(s)) # 返回值:['张', '三', '、', '李', ' ', '四', '、', '王', '二', ' ', ' ', '麻', '子', '、', '小', '明']
(4)join
  • join方法用于将序列中的元素以指定的爱抚连接成一个新的字符串
  • 语法格式:str.join(sequence)
    • sequence:要连接的元素序列、字符串、元素、字典
l = ['a', 'b', 'c']
print('-', l) # 返回值:a-b-c

四、列表处理技术

1.列表基础

  • 列表是python中最常用的对象,熟练掌握列表的各种操作非常关键。列表的格式为[元素1,元素2,元素3...]
  • 列表中元素的数据类型,可以是任意数据类型,但要注意正确的表达方式
  • 列表中可以嵌套列表

2.列表切片

  • python中符合序列的有序序列都支持切片,例如:列表、字符串、元组
  • 语法格式:[start:end:step]
    • start:起始索引,从0开始,-1表示结束
    • end:结束索引
    • step:步长,步长为正时,从左向右取值;步长为负时,反向取值
  • 注意切片的结果不包含结束索引,即不包含最后一位,-1代表列表的最后一个位置索引
l = ['a', 'b', 'c', 'd', 'e', 'f', 'g']
print(l[2:6]) # ['c', 'd', 'e', 'f']
print(l[:4]) # ['a', 'b', 'c', 'd']
print(l[5:]) # ['f', 'g']
print(l[-5:-2]) # ['c', 'd', 'e']
print(l[-3:]) # ['e', 'f', 'g']
print(l[-6:6]) # ['b', 'c', 'd', 'e', 'f']
print(l[2:-1]) # ['c', 'd', 'e', 'f']
print(l[:]) # ['a', 'b', 'c', 'd', 'e', 'f', 'g']
print(l[::2]) # ['a', 'c', 'e', 'g']

3.列表的增加、删除、修改

(1)列表元素的修改
l = ['a-黄瓜', 'b-南瓜', 'c-冬瓜', 'd-苦瓜', 'e-西瓜']
l[2] = 'c-我不是冬瓜'
(2)列表元素的增加
l = ['张三']
l = ['李四'] + l # 加号添加
l.append('王二') # append添加
l.insert(2, '麻子') # insert插入添加,指定位置
(3)列表元素的删除
l2 = ['a-黄瓜', 'b-南瓜', 'c-冬瓜', 'd-苦瓜', 'e-西瓜']
# 删除-指定下表删除,没有该元素时报错
l2.pop()
l2.pop(0)
# 删除-按指定值删除
l3 = ['a-黄瓜', 'b-南瓜', 'c-冬瓜', 'd-苦瓜', 'e-西瓜']
l3.remove('c-冬瓜')
# 删除-del语句删除
l4 = ['a-黄瓜', 'b-南瓜', 'c-冬瓜', 'd-苦瓜', 'e-西瓜']
del l4[-2]
# 清空列表
l4 = ['a-黄瓜', 'b-南瓜', 'c-冬瓜', 'd-苦瓜', 'e-西瓜']
l5.clear()

4.实例应用

  • 汇总每个人的总成绩
import xlrd
from xlutils.copy import copy
wb = xlrd.open_workbook('成绩统计表.xls')
ws = wb.sheet_by_name('成绩')
nwb = copy(wb)
nws = nwb.get_sheet('Sheet2')
n = 0; m = 0
# 循环行号
while n < ws.nrows - 1:
    n += 1
    # 拆分提取分数,数据格式为:语文-89-数学-85-历史96,转换后格式为:['89','85','96']
    l = ws.cell_value(n, 1).split('-')[1::2]
    # 循环分数列表
    for v in l:
        # 转换累加分数
        m += int(v)
    # 将姓名写入A列单元格
    nws.write(n, 0, ws.cell_value(n, 0))
    # 将总分写入B列单元格
    nws.writ(n, 1, m)
    # 再次初始化m总分数变量
    m = 0
nwb.save('成绩统计表.xls')

5.列表操作符

(1)基础操作符
  • 组合:+
  • 重复:*
  • 元素是否存在于列表中:in
# 组合
print([1, 2, 3] + [100, 200])
# 重复
print([1, 2, 3] * 4)
# 指定值在列表中是否存在
print(1 in [1, 2, 3])
  • 实例:判断指定姓名在指定日期是否值班
import xlrd
from xlutils.copy import copy
wb = xlrd.open_workbook('值班表.xls')
ws = wb.sheet_by_name('值班表')
nwb = copy(wb)
nws = nwb.get_sheet('值班表')
r = 0
while r < ws.nrows -1:
    r += 1
    # 读取要判断的行列表
    row = ws.row_values(r)
    # 判断小明在行列表中是否存在
    if '小明' in row:
        nws.write(r, 6, '√')
    else:
        nws.write(r, 6, 'x')
nwb.save('值班表.xls')

6.列表操作符

  • 列表推导式是Python基础,好用又重要的功能,也是最受欢迎的Python特性之一,可以说掌握它是成为合格Python程序员的基本标准。本质上可以吧列表推导式理解成一种集合了转换和筛选共功能的函数,通过这个函数把一个列表转换成另一个列表。注意是另一个新列表,原列表保持不变
(1)列表推导
  • [表达式 for 变量 in 列表]
(2)列表嵌套推导
  • [表达式 for 变量1 in 列表1 for 变量2 in 列表2]
(3)条件列表推导
  • [表达式 for 变量1 in 列表 if 条件]
l1 = ['83', '98', '91', '100']
l2 = [x for x in l1]
print(l2) # [83,98,91,100]
l3 = [[98,86,74,85],[96,99,75,92],[69,93,87,85]]
l4 = [[x+100 for x in l] for l in l2]
print(l4) # [[198,186,174,185],[196,199,175,192],[169,193,187,185]]
  • 18
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值