Ich habe die folgende Python-Funktion,Konvertieren von Python-Funktion in R Funktion
import random
import math
deck = [2,3,4,5,6,7,8,9,10,10,10,10,11]
def draw_card(deck):
card = deck.pop(random.sample(range(len(deck)), 1)[0])
return(card)
print(deck,'\n')
my_draw = draw_card(deck)
print(my_draw, '\n')
print(deck, '\n')
Die folgende Ausgabe ist,
[2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10, 11]
3
[2, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10, 11]
Ich muss das R konvertieren, aber ich verstehe, gibt es keine Entsprechung Python list.pop Funktion in R. ich bin nicht besorgt über Zufallsprinzip aus, wie ich ein rep
in R tun kann, und bin in der Lage durch die Zeichnung von Karte in R zu emulieren,
DrawCard <- function(card){
card <- tail(deck,1)
return(card)
}
Auch ich kann die gleiche gezogene Karte um head(deck, -1)
entfernen, aber ich weiß nicht, wie man die 2 in 1 Funktion wie in Python füttert, die sowohl den Kartenwert als auch das kürzere Deck zurückgibt.
Bitte helfen.
Danke, Lobbie
R macht meistens keine In-Place-Mutation; d. h. eine Funktion ändert kein Objekt, sondern gibt stattdessen eine Version dieses Objekts zurück, mit der sie überschrieben werden kann. Die R-esqe-Version von 'list.pop' wäre zweimal zu unterteilen. Siehe 'Beispiel 'zum Mischen. – alistaire