鱼C论坛

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

[已解决]python 列表问题

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

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

lst=['a','b','c','e']
fun(lst,'e','d') #在 e 前面插入 d ,成功
fun(lst,'g','f') #在 g 前面插入 f ,失败 

最佳答案

查看完整内容

帮你写了一下,功能完成了。具体情况你可以再修改
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

lst=['a','b','c','e']
fun(lst,'e','d') #在 e 前面插入 d ,成功
fun(lst,'g','f') #在 g 前面插入 f ,失败 
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

lst=['a','b','c','e','e','e']
fun(lst,'e','d') #在 e 前面插入 d ,成功
fun(lst,'g','f') #在 g 前面插入 f ,失败
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

你好,请问,我想自己输入判断有没有,我修改了一下你的,结果不一样
9.18.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

你好,我想自己输入数字判断
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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


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

a=[11,22,33,55,66,77,88,99,100]
value=int(input('please input a num:'))#value是查找的值
new_value=int(input('please input a new num:'))# new_value是插入的值
fun(a,value,new_value)
想知道小甲鱼最近在做啥?请访问 -> 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是否相等
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

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

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

我自己都笑了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-18 15:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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