鱼C论坛

 找回密码
 立即注册
查看: 4191|回复: 8

[已解决][res.extend(m) for m in array] 语句表达什么意思? 谢谢

[复制链接]
发表于 2021-9-27 10:17:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
多维数据转换为一维数组

array = [[3, 4, 5], [4, 22, 44, 6], [7, 8]]
res = []
[res.extend(m) for m in array]


print(res)  # [3, 4, 5, 4, 22, 44, 6, 7, 8]
最佳答案
2021-9-27 10:26:54
列表推导式
等于
for m in array:
       res.extend(m)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-9-27 10:26:54 From FishC Mobile | 显示全部楼层    本楼为最佳答案   
列表推导式
等于
for m in array:
       res.extend(m)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-27 11:01:25 | 显示全部楼层
利用列表推导式的for循环,将res依次添加子列表,但没有将推导式赋值给一个变量。
如果打印推导式的值,就会发现是[None, None, None],即extend没有返回值。
更pythonic的写法,还可以写成:
array = [[3, 4, 5], [4, 22, 44, 6], [7, 8]]
res = sum(array, start = [])


print(res)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-27 11:37:13 | 显示全部楼层
冬雪雪冬 发表于 2021-9-27 11:01
利用列表推导式的for循环,将res依次添加子列表,但没有将推导式赋值给一个变量。
如果打印推导式的值,就 ...

谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-27 14:51:38 | 显示全部楼层
冬雪雪冬 发表于 2021-9-27 11:01
利用列表推导式的for循环,将res依次添加子列表,但没有将推导式赋值给一个变量。
如果打印推导式的值,就 ...

代码执行时,提示如下,怎么回事呢? 谢谢。

Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\1.py", line 5, in <module>
    res = sum(array, start = [])
TypeError: sum() takes no keyword arguments
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-27 14:52:38 | 显示全部楼层
冬雪雪冬 发表于 2021-9-27 11:01
利用列表推导式的for循环,将res依次添加子列表,但没有将推导式赋值给一个变量。
如果打印推导式的值,就 ...

代码执行时,有如下的提示,可以怎么处理吗? 谢谢。

array = [[3, 4, 5], [4, 22, 44, 6], [7, 8]]
res = sum(array, start = [])


print(res)


Traceback (most recent call last):
  File "C:\Users\Administrator\Desktop\1.py", line 5, in <module>
    res = sum(array, start = [])
TypeError: sum() takes no keyword arguments
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-27 15:00:03 | 显示全部楼层
wideband 发表于 2021-9-27 14:52
代码执行时,有如下的提示,可以怎么处理吗? 谢谢。

array = [[3, 4, 5], [4, 22, 44, 6], [7, 8]]

我的python版本是3.8,记得早一些的版本也运行过。看看你的版本是多少
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-27 16:02:03 | 显示全部楼层
冬雪雪冬 发表于 2021-9-27 15:00
我的python版本是3.8,记得早一些的版本也运行过。看看你的版本是多少

我的python版本是3.6的,谢谢

    res = sum(array, start = [])
TypeError: sum() takes no keyword arguments
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-2-8 10:07:58 | 显示全部楼层
lst = [88,89,90,98,0,99]

for index,value in enumerate(lst):
    if str(value) != "0":
        lst[index] = '19'+str(value)
    else:
        lst[index] = '200'+str(value)
        
print(lst)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-24 17:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表