我正在开发一个函数,它将套装和值作为另一个函数列表中的字符串获取:
def getCard(n):
deckListSuit = []
grabSuit = getSuit(n)
n = (n-1) % 13 + 1
if n == 1:
deckListSuit.append("Ace")
return deckListSuit + grabSuit
if 2 <= n <= 10:
deckListSuit.append(str(n))
return deckListSuit + grabSuit
if n == 11:
deckListSuit.append("Jack")
return deckListSuit + grabSuit
if n == 12:
deckListSuit.append("Queen")
return deckListSuit + grabSuit
if n == 13:
deckListSuit.append("King")
return deckListSuit + grabSuit
使用新功能,它将从上面的函数中获取信息并将其返回到具有某种结构“VALUE of SUIT”的列表中。
所以说如果你有“3”,“黑桃”它会返回“3个黑桃”。
到目前为止,这是我在新功能上的代码。
def getHand(myList):
hand = []
for n in myList:
hand += getCard(n)
return [(" of ".join(hand[:2]))] + [(" of ".join(hand[2:4]))] + [(" of ".join(hand[4:6]))] + [(" of ".join(hand[6:8]))] + [(" of ".join(hand[8:10]))]
我的问题是,如何在价值和套装之间插入“of”而不必做几百万次?
答案 0 :(得分:2)
您可以在for
循环
for n in myList:
hand += [" of ".join(getCard(n))]
return hand
您也可以在getCard
中执行此操作并返回'3 of Spades'
BTW:你可以把它作为列表上的元组
hand = [ ("3", "Spades"), ("Queen", "Spades"), ... ]
然后您可以使用for
循环代替切片[:2]
,[2:4]
new_list = []
for card in hand:
# in `card` you have ("3", "Spades")
new_list.append(' of '.join(card))
return new_list
答案 1 :(得分:0)
如果你使用元组列表,你可以使用格式和列表理解
test_hand = [("3","space"),("4","old")]
return ["{} of {}".format(i,z) for i,z in (test_hand)]
输出:
['3 of space', '4 of old']