| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2653 人关注过本帖
标题:新手请教:list[]的运算问题
只看楼主 加入收藏
kyletan0808
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2019-4-11
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:7 
新手请教:list[]的运算问题
大神们有办法用list[1,2,3,4,5,6,7,8]里面的元素去做乘除运算?
我想实现的是:如果list[]里面的元素能被2整除,就把那个元素用某一特定的元素代替。
搜索更多相关主题的帖子: list 运算 元素 特定 代替 
2019-04-30 11:46
外部三电铃
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:那一年
等 级:贵宾
威 望:57
帖 子:2012
专家分:7306
注 册:2007-12-17
收藏
得分:16 
如果逻辑有些复杂,就没必要用列表解析了,还是定义一个函数去实现这个功能吧,定义函数也不复杂。

刚学python的时候,惊讶于它一行可以实现很强大的功能,如果学过ruby,会发现ruby一行能实现的功能更强大。业界给取了个外号:一行党。

把程序写进一行并不是好事,程序也不是越短越好,而是后面自己看的时候约容易理解越好。

那一年,苍井空还是处女
2019-04-30 11:56
kyletan0808
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2019-4-11
收藏
得分:0 
回复 2楼 外部三电铃
感谢关注!其实逻辑并不复杂,就是历遍列表里面的元素(for i in xxx),如果有能被2整除的元素(数字)就替换。。。
但我试了几次都报错,不是元素不能和数字相乘除就是超出index范围。连最后我要print  list[i]都无法实现。以下是我自己写的部分代码,能否指出该怎么写才对?谢谢!
a = ['1','2','3','4','5','6','7','8','9']
b = list(map(int,a)) #字符转换整数
for i in a:
  if b[i]%2 == 0:
     b[i] = " "
print(" ".join(b))

运行之后就是不断报错求指教!
2019-04-30 12:46
kyletan0808
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2019-4-11
收藏
得分:0 
以下是引用kyletan0808在2019-4-30 12:46:19的发言:

感谢关注!其实逻辑并不复杂,就是历遍列表里面的元素(for i in xxx),如果有能被2整除的元素(数字)就替换。。。
但我试了几次都报错,不是元素不能和数字相乘除就是超出index范围。连最后我要print  list都无法实现。以下是我自己写的部分代码,能否指出该怎么写才对?谢谢!
a = ['1','2','3','4','5','6','7','8','9']
b = list(map(int,a)) #字符转换整数
for i in a:
  if b%2 == 0:
     b = " "
print(" ".join(b))

运行之后就是不断报错求指教!

弄错了 应该是 for i in b
2019-04-30 12:54
外部三电铃
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:那一年
等 级:贵宾
威 望:57
帖 子:2012
专家分:7306
注 册:2007-12-17
收藏
得分:0 
以下是引用kyletan0808在2019-4-30 12:46:19的发言:

感谢关注!其实逻辑并不复杂,就是历遍列表里面的元素(for i in xxx),如果有能被2整除的元素(数字)就替换。。。
但我试了几次都报错,不是元素不能和数字相乘除就是超出index范围。连最后我要print  list都无法实现。以下是我自己写的部分代码,能否指出该怎么写才对?谢谢!
a = ['1','2','3','4','5','6','7','8','9']
b = list(map(int,a)) #字符转换整数
for i in a:
  if b%2 == 0:
     b = " "
print(" ".join(b))
 
运行之后就是不断报错求指教!

有那么复杂吗?你是不是从C语言转过来的?python是动态脚本语言,要善于利用它的动态特性
程序代码:
a = ['1','2','3','4','5','6','7','8','9']

def f(x):
    if int(x)%2 == 0:
        return ' '
    else:
        return x

b = map(f, a)

print b


那一年,苍井空还是处女
2019-04-30 12:56
kyletan0808
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2019-4-11
收藏
得分:0 
回复 5楼 外部三电铃
我是没有基础的小白,之前的章节还可以。但到文件,列表的时候开始迷失了
谢谢赐教
2019-04-30 15:54
王介武
Rank: 2
等 级:论坛游民
帖 子:3
专家分:14
注 册:2019-4-18
收藏
得分:4 
我是这样写的

a = ['1','2','3','4','5','6','7','8','9']
for i in range(len(a)):
  if int(a[i]) % 2 == 0:
     a[i] = " "
print(" ".join(a))
2019-05-01 09:02
kyletan0808
Rank: 1
等 级:新手上路
帖 子:16
专家分:0
注 册:2019-4-11
收藏
得分:0 
回复 7楼 王介武
逻辑对了,我把你的代码段改了一下,想要的效果出来了。谢谢赐教
2019-05-04 11:56
快速回复:新手请教:list[]的运算问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.039881 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved