长话短说:
import random
cards = [11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10]
user_hand = []
computer_hand = []
def draw(x):
for c in range(0, x):
card = random.choice(cards)
return card
user_hand.append(draw(1))
print(user_hand)
尝试组合一个函数,该函数将循环遍历卡片列表并随机选择一个项目,无论 X 指定多少次,无论插入的数字如何
user_hand.append(draw(x))
它总是只返回 1 张卡片,这让我很困惑。有任何想法吗?以为是函数中的 return ,因为 return 在调用时会结束代码块,但我不确定。
答案 0 :(得分:1)
这是因为 card
在每次迭代中都会被覆盖,而您只返回最后一个值。
您可以创建一个列表并返回列表:
def draw(x):
random_cards = []
for c in range(0, x):
card = random.choice(cards)
random_cards.append(card)
return random_cards
user_hand.extend(draw(1)) # further you'll need extend here else it will create a list of lists
答案 1 :(得分:0)
可能是这样
def draw(x):
result=[]
for c in range(0, x):
card = random.choice(cards)
result.append(card)
return result
答案 2 :(得分:0)
如果您想在不替换的情况下挑选卡片,random.sample
函数可以满足您的需求。
interface IOnClick{
fun onClick(model: Model)
}
override fun onClick(model: Model) {
viewModel.setFormDataOnIdSelection(Model)
binding.tietName.dismissDropDown()
}
override fun getView(position: Int, convertView: View?, parent: ViewGroup): View {
newView.setOnClickListener {
iOnClick.onClick(resAllLeadsModel)
}
}
binding.tietName.setOnItemClickListener { parent, view, position, id ->
viewModel.setFormDataOnIdSelection(listOfItems[view.tag.toString().toInt()])
}
答案 3 :(得分:0)
draw()
的值
由于 range
函数会遍历 start
和 end
点,因此传递一个只会返回一个值!list
以附加在 random choices
期间选择的 range()