如何在列表中找到索引?

时间:2013-11-05 23:51:06

标签: python

我试图找到JOKER1并将其与随后的卡交换(在一副圆形卡片内),但我似乎无法找到正确的代码。 如果我有一个代码

def move_joker_1(i):
    i[i.index(27)], i[i.index(27) + 1] = i[i.index(27) + 1], i[i.index(27)]
    print(i)

我总是得到move_joker_1()需要1个位置参数但是x(一个数字)被给出。

2 个答案:

答案 0 :(得分:2)

将卡片列表作为一个参数传递:

move_joker_1(cards)

使用*splat语法; move_joker_1(*cards)会将每张卡作为单独的参数应用。

您可能只需要拨打i.index(27)一次,并考虑到它可能位于列表的 end

def move_joker_1(i):
    joker_pos = i.index(27)
    swap_with = joker_pos + 1
    if swap_with == len(i):
        swap_with = 0
    i[joker_pos], i[swap_with] = i[swap_with], i[joker_pos]
    print(i)

答案 1 :(得分:0)

希望这有帮助!

i = ["KING1", "JACK2", "JOKER1", "QUEEN4"]
def move_joker_1(i):
    n = i.index("JOKER1")
    joker = i[n]
    i[n] = i[n+1]
    i[n+1] = joker

move_joker_1(i)
print i