鱼C论坛

 找回密码
 立即注册
查看: 1345|回复: 6

[已解决]求助基础代码问题

[复制链接]
发表于 2019-8-16 19:09:46 | 显示全部楼层 |阅读模式

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

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

x

list_1 = ["1.just","2.一切","3.让","4.impossible"]
list_2 = ["4.阿迪","2.李宁","3.甲鱼","1.耐克"]
list_3 = []

for name in list_2:
    for slogan in list_1:
        if name[0] == slogan[0]:
            list_3 = name + ":" + slogan[2:]

print(list_3)

打印结果:
1.耐克:just

Process finished with exit code 0

为什么打印一次就停了呢?
最佳答案
2019-8-16 19:27:31
因为你打印语句没有写到循环里面。每次循环的结果都是把name + ":" + slogan[2:]赋值给list_3,也就是说,最终的list_3只有一个元素而且是循环最后一次满足条件语句的结果。

如果你是想直接打印出列表的话
  1. list_1 = ["1.just","2.一切","3.让","4.impossible"]
  2. list_2 = ["4.阿迪","2.李宁","3.甲鱼","1.耐克"]
  3. list_3 = []

  4. for name in list_2:
  5.     for slogan in list_1:
  6.         if name[0] == slogan[0]:
  7.             list_3.append(name + ":" + slogan[2:])

  8. print(list_3)
复制代码


如果你是想把list_3中的每个值打印出来的话
  1. list_1 = ["1.just","2.一切","3.让","4.impossible"]
  2. list_2 = ["4.阿迪","2.李宁","3.甲鱼","1.耐克"]
  3. list_3 = []

  4. for name in list_2:
  5.     for slogan in list_1:
  6.         if name[0] == slogan[0]:
  7.             list_3.append(name + ":" + slogan[2:])

  8. for value_t in list_3:
  9.     print(value_t)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2019-8-16 19:27:31 | 显示全部楼层    本楼为最佳答案   
因为你打印语句没有写到循环里面。每次循环的结果都是把name + ":" + slogan[2:]赋值给list_3,也就是说,最终的list_3只有一个元素而且是循环最后一次满足条件语句的结果。

如果你是想直接打印出列表的话
  1. list_1 = ["1.just","2.一切","3.让","4.impossible"]
  2. list_2 = ["4.阿迪","2.李宁","3.甲鱼","1.耐克"]
  3. list_3 = []

  4. for name in list_2:
  5.     for slogan in list_1:
  6.         if name[0] == slogan[0]:
  7.             list_3.append(name + ":" + slogan[2:])

  8. print(list_3)
复制代码


如果你是想把list_3中的每个值打印出来的话
  1. list_1 = ["1.just","2.一切","3.让","4.impossible"]
  2. list_2 = ["4.阿迪","2.李宁","3.甲鱼","1.耐克"]
  3. list_3 = []

  4. for name in list_2:
  5.     for slogan in list_1:
  6.         if name[0] == slogan[0]:
  7.             list_3.append(name + ":" + slogan[2:])

  8. for value_t in list_3:
  9.     print(value_t)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-16 20:08:39 | 显示全部楼层
把 list3 = 改成 list3 +=
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-17 12:06:49 | 显示全部楼层
zltzlt 发表于 2019-8-16 20:08
把 list3 = 改成 list3 +=

这个不能是+=,+=的必须是另一个列表。
应该是
  1. list_3.append(name + ":" + slogan[2:])
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-17 13:09:52 | 显示全部楼层
为什么直接打印print(list_3)
和打印for value_t  in list_3:
               print(value_t)     的结果不一样呢。
我的理解是都一样的啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-8-17 14:13:43 | 显示全部楼层
空青 发表于 2019-8-16 19:27
因为你打印语句没有写到循环里面。每次循环的结果都是把name + ":" + slogan[2:]赋值给list_3,也就是说, ...


为什么直接打印print(list_3)
和打印for value_t  in list_3:
               print(value_t)     的结果不一样呢。
我的理解是都一样的啊
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-17 17:13:24 | 显示全部楼层
qinshi122 发表于 2019-8-17 14:13
为什么直接打印print(list_3)
和打印for value_t  in list_3:
               print(value_t)     的 ...

list_3是一个列表类型,在for循环里面用append方法,每循环一次,就把一个值添加到list_3里面去,最后再打印出来的话是一个列表。

如果使用for value_t in list_3: print(value_t)的话,实际上是对这个列表进行了遍历,把里面的每个元素打印出来了。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-10-20 13:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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