Python 确定字符串的一部分是否在列表中

Python 确定字符串的一部分是否在列表中,python,python-3.x,indexing,set,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 c

给定输入

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”),并在其上运行交叉点?我在手机上写下这封信是因为我的互联网在我的家里,所以很抱歉出现任何混乱或拼写错误。谢谢你的时间

您可以遍历左侧项目中的字符,查看其中是否有“5”或“K”:

index1 = playable.index(card_guess)
if any(c in playable[index1 - 1] for c in card_guess):
    del playable[index1]
请注意,上面的代码没有检查
index1==0
的情况,因此您必须定义当猜测的卡是列表中的第一张卡时会发生什么


因此,为了回答您的问题:
对于卡片中的c
猜测迭代
中的字符“5K”
(它们是
'5'
'K'
,然后它会检查它们是否在
可播放的[index1-1]
,这是
“5K”
左侧的项。

我不明白您想要完成什么。您的目标似乎是删除
Guess
指定的项目的左侧;对的看起来这个规范中的顺序很重要,所以构建集合没有意义。这意味着“5K”的处理方式类似于“K5”。你想要吗?(您的代码看起来像扑克牌之类的东西。)