确定字符串的一部分是否在List中

时间:2013-05-08 18:41:28

标签: python python-3.x indexing set

给出输入

Guess='1 5K'

和一个清单

playable=['AC','QS','5S','5K','KC']

我如何确定Guess的'5K'部分是否可以播放?此外,如果它是可玩的,我将如何确定其左侧的项目1是否具有“5”或“K”。所以可玩性会变成

playable=['AC','QS','5K','KC']

用'5K'代替'5S'。 到目前为止我已经

def oneC(Guess):
    split_em=Guess.split() ##splits at space
    card_guess=split_em[1] ##gets the '5K' part of string
    if card_guess is in playable:
                                          ##Confusion Area
        index1=playable.index(card_guess) ##Finds index of '5K'
        index_delete= del playable[index1-1] ##Deletes item to the left of '5K'

我现在的问题是我不知道如何判断左边的一个位置是否有'5'或'K'。有没有办法将'5K'变成一组('5','K')然后将元素向左转一个点到('5','S')并在它们上运行交集?我在手机上写了这个,因为我的互联网在我的家里,所以很抱歉任何混乱或拼写错误。谢谢你的时间!

1 个答案:

答案 0 :(得分:0)

您可以将项目中的字符迭代到左侧,看看是否有“5”或“K”:

index1 = playable.index(card_guess)
if any(c in playable[index1 - 1] for c in card_guess):
    del playable[index1]

请注意,上述代码不会检查index1 == 0的情况,因此您必须定义当猜测的卡片是列表中的第一张卡片时会发生什么。

所以回答你的问题:for c in card_guess遍历"5K"中的字符('5''K',然后检查playable[index1 - 1]中是否有任何字符"5K" 1}},这是{{1}})左侧的项目。