兰竹皋 发表于 2020-5-29 11:20:48

有高人吗?求助,谢谢

本帖最后由 兰竹皋 于 2020-5-29 12:34 编辑

想让member与inse元素相互交叉排列形成一个新列表:比如:['小甲鱼',88,....]

请问:图片中列表扩展式哪里有问题(编译时显示else处出现问题),
但按照if else 三元语句感觉没问题,
又应该怎么改呢?(else 后有个x,这里没剪切)

Twilight6 发表于 2020-5-29 11:29:43

你这是 列表推导式 和三元表达式 混着用了

Twilight6 发表于 2020-5-29 11:49:04

你是想达到什么效果,看不懂你写的代码

KevinHu 发表于 2020-5-29 12:19:10

这样?

mamber = ['小甲鱼', '黑夜', '迷途', '怡静', '秋舞斜阳']
inde =
a = if isinstance(x, int) else

兰竹皋 发表于 2020-5-29 12:25:11

本帖最后由 兰竹皋 于 2020-5-29 12:30 编辑

Twilight6 发表于 2020-5-29 11:49
你是想达到什么效果,看不懂你写的代码

想让member与inse元素相互交叉排列形成一个新列表:比如:['小甲鱼',88,....]

分开写很简单,我是想提高对列表推导式与三元的认知才这么写的,请问,它们两个不能一起用吗?
有什么简单方法能实现吗?还是只能分开写?

兰竹皋 发表于 2020-5-29 12:26:15

本帖最后由 兰竹皋 于 2020-5-29 12:33 编辑

KevinHu 发表于 2020-5-29 12:19
这样?

谢谢,是这个意思
但这么写还是会报错,会显示x变量没有定义;
再者这么分开,总感觉就不是一个列表了

KevinHu 发表于 2020-5-29 12:45:05

兰竹皋 发表于 2020-5-29 12:26
谢谢,是这个意思
但这么写还是会报错,会显示x变量没有定义;
再者这么分开,总感觉就不是一个列表了

x确实没有定义,要在前面加上一个定义或输入的过程

这个是三元操作符,不是列表,只是里面的某一个操作数是一个列表推导式

KevinHu 发表于 2020-5-29 12:45:54

兰竹皋 发表于 2020-5-29 12:25
想让member与inse元素相互交叉排列形成一个新列表:比如:['小甲鱼',88,....]

分开写很简单,我是想 ...

你这样好像不能这么写,乖乖用循环吧{:10_250:}

xiaosi4081 发表于 2020-5-29 12:47:46

兰竹皋 发表于 2020-5-29 12:26
谢谢,是这个意思
但这么写还是会报错,会显示x变量没有定义;
再者这么分开,总感觉就不是一个列表了

用数组试试

兰竹皋 发表于 2020-5-29 12:57:51

KevinHu 发表于 2020-5-29 12:45
你这样好像不能这么写,乖乖用循环吧

谢谢

兰竹皋 发表于 2020-5-29 12:58:23

xiaosi4081 发表于 2020-5-29 12:47
用数组试试

。。。数组。。。
什么意思?

Twilight6 发表于 2020-5-29 12:59:17

xiaosi4081 发表于 2020-5-29 12:47
用数组试试

Python 没有数组概念,除非 numpy 之类的库

Twilight6 发表于 2020-5-29 13:00:54

兰竹皋 发表于 2020-5-29 12:25
想让member与inse元素相互交叉排列形成一个新列表:比如:['小甲鱼',88,....]

分开写很简单,我是想 ...

不能这样混着用吧   

三元运算符是条件成立执行前面的操作 不成立执行else的操作 而列表推导式是加将 后面符合条件的加入列表   这就冲突了

永恒的蓝色梦想 发表于 2020-5-29 13:04:47

def flatten(iterable, /):
    for i in iterable:
      if hasattr(i,'__iter__'):
            yield from flatten(i)

      else:
            yield i

#member=?
#inse=?

a=list(flatten(zip(member,inse)))

永恒的蓝色梦想 发表于 2020-5-29 13:20:47

兰竹皋 发表于 2020-5-29 12:58
。。。数组。。。
什么意思?

球球了,给个最佳吧{:10_278:}

兰竹皋 发表于 2020-5-29 13:26:08

永恒的蓝色梦想 发表于 2020-5-29 13:04


谢谢,
emmm.....
(其实分开写,方法还是不少的,我是想用一句话,不创新函数来写,看看能不能成功)
不过,这种消元组括号的方式,真。。。。高端?
现在我的水平没看懂。。。

永恒的蓝色梦想 发表于 2020-5-29 13:28:56

兰竹皋 发表于 2020-5-29 13:26
谢谢,
emmm.....
(其实分开写,方法还是不少的,我是想用一句话,不创新函数来写,看看能不能成功)
...

a=这样就是一句话,有意义么?

永恒的蓝色梦想 发表于 2020-5-29 13:31:05

兰竹皋 发表于 2020-5-29 13:26
谢谢,
emmm.....
(其实分开写,方法还是不少的,我是想用一句话,不创新函数来写,看看能不能成功)
...

不过我还是要求个最佳{:10_278:}

兰竹皋 发表于 2020-5-29 13:37:21

本帖最后由 兰竹皋 于 2020-5-29 13:39 编辑

永恒的蓝色梦想 发表于 2020-5-29 13:28
这样就是一句话,有意义么?

谢谢,原来还可以这么用,(虽然还是用了别的函数)
是有启迪意义的(毕竟我刚学,见识太少了)

话说,既然能这样,你14#又写一个函数是干什么。。。。

兰竹皋 发表于 2020-5-29 13:52:12

所以,总得来说可以一句话这么写:
member = for j in i]
哈哈哈
页: [1] 2
查看完整版本: 有高人吗?求助,谢谢