悬赏问答
1回答 168查看
悬赏 2 金币
test
说来有点惭愧,初学代码不久,遇到个问题,想了很久没想到好的解决方法,特来求解,问题如下:
已知一个只存在两个元素的列表(或者元组)[a1, a2],将列表传入方法后返回其中的一个元素a2,如何取列表中的另一个元素a1?
目前想到的就是如下:

  1. tmp_list = [a1, a2]
  2. a3 = func(tmp_list)
  3. tmp_list.remove(a3)
  4. a4 = tmp_list[0]
  5. print(a3.name, a4.name)
复制代码

想知道有没有更好的办法
回答 1 条
水煮鱼 2022-10-22 09:52:55
  1. class test:
  2.     def __init__(self, name, att):
  3.         self.name = name
  4.         self.att = att


  5. def func(a1: test, a2: test):
  6.     return 0 if a1.att >= a2.att else 1


  7. a1 = test("a1", 1)
  8. a2 = test("a2", 2)

  9. a3, a4 = [a1, a2][func(a1, a2)], [a1, a2][int(not(func(a1, a2)))]
  10. print(a3.name, a4.name)
复制代码
您需要登录后才可以回帖 登录 | 注册
Smilies Code
高级模式