找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 5038|回复: 4

[已解决] 新人求助。关于只改变list中某个元素的问题。

1

主题

1

帖子

1

积分

贫民

积分
1
verylam 发表于 2016-10-27 00:47:17 | 显示全部楼层 |阅读模式
  1. family = [["the", "tall", "fat", "dad", "is", "2"],
  2.           ["the", "beautiful", "mom", "is", "1"],
  3.           ["son", "is", "0"]]
  4. name = ["Bob", "Lucy", "Peter"]
复制代码


要求打印结果为
  1. ["the", "tall", "fat", "dad", "is", "Peter"],
  2. ["the", "beautiful", "mom", "is", "Lucy"],
  3. ["son", "is", "Bob"]
复制代码

要求用一函数来执行,且函数可多次执行,有一个大问题是:如果把name里的元素直接赋值到family最后一个元素中,函数就不能够二次执行了比如函数中:
for i in range(3):
       family[-1] = name(int(family[-1]))
第二次在执行时已经不是数字,会报错,怎么解决这个问题?
回复

使用道具 举报

1

主题

2

帖子

2

积分

贫民

积分
2
iceecream 发表于 2016-10-27 09:01:56 | 显示全部楼层
family = [["the", "tall", "fat", "dad", "is", "2"],
          ["the", "beautiful", "mom", "is", "1"],
          ["son", "is", "0"]]
name = ["Bob", "Lucy", "Peter"]

for i in range(0,3):
        family[i][-1]=name[2-i]
print family

或者使用列表生成式:
print [family[i][:-1]+[name[2-i]] for i in range(0,3)]
回复 支持 2 反对 0

使用道具 举报

3

主题

14

帖子

14

积分

贫民

积分
14
海边的沙砾 发表于 2016-10-27 10:49:56 | 显示全部楼层
楼上答的很好,如果你要分段的效果
for i in range(0,3):
        family[i][-1]=name[2-i]
        print (family[i])
回复 支持 反对

使用道具 举报

1419

主题

1891

帖子

291

积分

侠客

积分
291

最佳新人热心会员默默耕耘

whydo1 发表于 2016-10-27 19:34:56 | 显示全部楼层
支持!
python3.4.4, win10
回复

使用道具 举报

50

主题

1057

帖子

1108

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1108

活跃会员热心会员最佳导师默默耕耘突出贡献优秀版主荣誉管理论坛元老

blueelwang 发表于 2016-10-27 22:11:06 | 显示全部楼层
iceecream 发表于 2016-10-27 09:01
family = [["the", "tall", "fat", "dad", "is", "2"],
          ["the", "beautiful", "mom", "is", "1"] ...

正解
回复 支持 反对

使用道具 举报

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

本版积分规则

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