鱼C论坛

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

[已解决]python的list中有多个元素,其中两个元素互换位置怎么写呢?谢谢大佬们!!

[复制链接]
发表于 2020-5-15 21:54:10 | 显示全部楼层 |阅读模式

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

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

x
题目:完成swap_elements(numbers_list,number1,number2)函数,该函数传递了三个参数:数字列表和两个整数值。如果两个整数值(第二个和第三个参数)都是数字列表的元素,则该函数交换两个值。如果两个整数值都不是数字列表的元素,则该函数不执行任何操作。
注意的点Note:该函数不返回结果,而是对参数列表进行更改。
          如果出现多个要更改的值,则更改最接近数字列表开头的值。
测试Test:list1 = [9, 0, 9, 5, 6, 6, 5]
         swap_elements(list1, 9, 6)
         print(list1)
最后输出的结果是:[6, 0, 9, 5, 9, 6, 5]
最佳答案
2020-5-15 21:57:47
本帖最后由 永恒的蓝色梦想 于 2020-5-15 22:23 编辑
def swap_elements(k,a,b):
    try:
        a=k.index(a)
        b=k.index(b)
        k[a],k[b]=k[b],k[a]
    except:
        pass
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-5-15 21:56:03 | 显示全部楼层
本帖最后由 Twilight6 于 2020-5-15 21:58 编辑

举个栗子:
a = [1,2,3]  
a[0],a[2] = a[2],a[0]
# 这样就可以让位置参数0的和位置参数为2 的替换数值了~~~
这样即可

帮助到你的话给个最佳吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 21:57:47 | 显示全部楼层    本楼为最佳答案   
本帖最后由 永恒的蓝色梦想 于 2020-5-15 22:23 编辑
def swap_elements(k,a,b):
    try:
        a=k.index(a)
        b=k.index(b)
        k[a],k[b]=k[b],k[a]
    except:
        pass
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-15 21:58:32 | 显示全部楼层
Twilight6 发表于 2020-5-15 21:56
这样即可

帮助到你的话给个最佳吧

嗯嗯 我试过了 但是我的代码好像哪里有错误  运行不出来
def swap_elements(numbers_list, number1, number2):
    new_list=[]
    for number in range(len(numbers_list)):
        if (number1 not in numbers_list) or (number2 not in numbers_list):
            return numbers_list

        elif (number1 in numbers_list) and (number2 in numbers_list):
            numbers_list[number1],numbers_list[number2]=numbers_list[number2],numbers_list[number1]
            new_list.append(number)
        
            return numbers_list
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 21:58:50 | 显示全部楼层
简单明了
def swap_elements(list1,a,b):
    list1.index(a) = b
    list1.index(b) = a
    return list1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 22:00:23 | 显示全部楼层


报错之王,就是你了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-5-15 22:00:58 | 显示全部楼层
MIQIWEI 发表于 2020-5-15 21:58
嗯嗯 我试过了 但是我的代码好像哪里有错误  运行不出来
def swap_elements(numbers_list, number1, num ...

这样即可
def swap_elements(numbers_list, number1, number2):
    new_list=[]
    for number in range(len(numbers_list)):
        if (number1 not in numbers_list) or (number2 not in numbers_list):
            return numbers_list

        elif (number1 in numbers_list) and (number2 in numbers_list):
            numbers_list[number1],numbers_list[number2]=numbers_list[number2],numbers_list[number1]
            new_list.append(number)
        
    return numbers_list
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 22:01:15 | 显示全部楼层
本帖最后由 Twilight6 于 2020-5-15 22:02 编辑
MIQIWEI 发表于 2020-5-15 21:58
嗯嗯 我试过了 但是我的代码好像哪里有错误  运行不出来
def swap_elements(numbers_list, number1, num ...


哦哦哦  我看见测试的了 我试试
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-5-15 22:01:37 | 显示全部楼层

去改代码了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-15 22:05:12 | 显示全部楼层

谢谢大佬!!!我就是中间那个index没写!感谢!!!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-21 08:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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