鱼C论坛

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

[已解决]python 列表问题

[复制链接]
发表于 2020-9-18 15:33:42 | 显示全部楼层 |阅读模式
4鱼币
在一个列表中查找一个指定的数据,如果找到,在其前面插入一个数据。否则,显示无此数据,不再插入数据。

要求:必须用到enumerate
最佳答案
2020-9-18 15:33:43
帮你写了一下,功能完成了。具体情况你可以再修改
  1. def fun(lst,s,d):
  2.     for i, value in enumerate(lst[:]):
  3.         if value ==s:
  4.             lst.insert(i,d)
  5.             print("插入成功!")
  6.             break
  7.     else:
  8.         print("没有找到",s)

  9. lst=['a','b','c','e']
  10. fun(lst,'e','d') #在 e 前面插入 d ,成功
  11. fun(lst,'g','f') #在 g 前面插入 f ,失败
复制代码

最佳答案

查看完整内容

帮你写了一下,功能完成了。具体情况你可以再修改
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-9-18 15:33:43 | 显示全部楼层    本楼为最佳答案   
帮你写了一下,功能完成了。具体情况你可以再修改
  1. def fun(lst,s,d):
  2.     for i, value in enumerate(lst[:]):
  3.         if value ==s:
  4.             lst.insert(i,d)
  5.             print("插入成功!")
  6.             break
  7.     else:
  8.         print("没有找到",s)

  9. lst=['a','b','c','e']
  10. fun(lst,'e','d') #在 e 前面插入 d ,成功
  11. fun(lst,'g','f') #在 g 前面插入 f ,失败
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-9-18 15:50:19 | 显示全部楼层
  1. def fun(lst,s,d):
  2.     j=0
  3.     for i, value in enumerate(lst[:]):
  4.         if value ==s:
  5.             lst.insert(i+j,d)
  6.             print("插入成功!")
  7.             print(lst)
  8.             j+=1
  9.             
  10.     else:
  11.         print("没有找到",s)

  12. lst=['a','b','c','e','e','e']
  13. fun(lst,'e','d') #在 e 前面插入 d ,成功
  14. fun(lst,'g','f') #在 g 前面插入 f ,失败
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-9-18 16:11:31 | 显示全部楼层
sunrise085 发表于 2020-9-18 15:45
帮你写了一下,功能完成了。具体情况你可以再修改

你好,请问,我想自己输入判断有没有,我修改了一下你的,结果不一样
9.18.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-9-18 16:13:13 | 显示全部楼层

你好,我想自己输入数字判断
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-9-18 16:21:58 | 显示全部楼层
本帖最后由 sunrise085 于 2020-9-18 16:23 编辑
qcyQCY 发表于 2020-9-18 16:11
你好,请问,我想自己输入判断有没有,我修改了一下你的,结果不一样


那应该是input啊
你写的是print,而且input得到的是字符串不是数字
而且你写的enumerate用法也不对啊
  1. def fun(a,s,d):
  2.     for i, value in enumerate(a[:]):
  3.         if value ==s:
  4.             a.insert(i,d)
  5.             print("插入成功!")
  6.             break
  7.     else:
  8.         print("没有找到",s)

  9. a=[11,22,33,55,66,77,88,99,100]
  10. value=int(input('please input a num:'))#value是查找的值
  11. new_value=int(input('please input a new num:'))# new_value是插入的值
  12. fun(a,value,new_value)
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2020-9-18 16:26:24 | 显示全部楼层
qcyQCY 发表于 2020-9-18 16:11
你好,请问,我想自己输入判断有没有,我修改了一下你的,结果不一样

for i, value in enumerate(a[:]):
这一句中的 i 是遍历列表时,value的序列号。例如当value为11的时候,i 为0;当value为55的时候,i 为3 。
你为何要用if判断vcalue和i是否相等
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-9-18 16:26:31 | 显示全部楼层
sunrise085 发表于 2020-9-18 16:21
那应该是input啊
你写的是print,而且input得到的是字符串不是数字
而且你写的enumerate用法也不对啊 ...

牛,啊兄弟,没反应过来,基础不扎实,我还是多看看书,谢谢啦、

小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-9-18 16:28:15 | 显示全部楼层
sunrise085 发表于 2020-9-18 16:26
for i, value in enumerate(a[:]):
这一句中的 i 是遍历列表时,value的序列号。例如当value为11的时候 ...

我自己都笑了
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-7-4 14:47

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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