Как узнать есть ли значение переменной внутри списка
У меня есть список выигрышный значений и переменная, которой присваивается случайное значение. Я хочу получить такой результат: если внутри списка есть число, которое равняется переменной, то ..., если переменная не равняется никакому числу из списка, то... Проблема заключается в том, что когда происходит сравнивание, то сравнивается каждое число из списка.
Код:
import random
startmoney = int(input("Введите ваш стартовый баланс: "))
COEFFICIENT = 0.001
WIN_FIELDS = [2, 4, 6, 8, 10, 11, 13, 15, 17, 20, 22, 24, 26, 28, 28, 29, 31, 33, 35]
balance1 = []
games1 = []
def money_manipulaion(money):
bet = startmoney * COEFFICIENT
if bet > money:
bet = money
money -= bet
return money, bet
def strategy1():
win = 0
loose = 0
games = 0
money = startmoney
while money > 0:
money, bet = money_manipulaion(money)
balance1.append(money)
games1.append(len(games1) + 1)
ball = random.randint(1, 37)
for a in WIN_FIELDS:
if ball == a:
money += bet * 2
win += 1
else:
loose += 1
games = win + loose
Теперь чуть подробнее: допустим ball = 15. Когда код доходит до строки if ball == a:, то он проверяет каждую переменную списка на соответствие, тем самым накручивая счетчик поражений, делает он это пока не проверит каждое число.
Я бы хотел, что бы программа проверяла, есть ли в списке число равное переменной и выполняло условие 1, а если его нет, то условие 2, не проверяя каждый элемент по очереди. Как это можно реализовать?
Ответы (1 шт):
Цикл не нужен вообще. Замените его на:
if ball in WIN_FIELDS:
money += bet * 2
win += 1
else:
loose += 1
И WIN_FIELDS лучше сделать множеством - так поиск быстрее будет для больших списков:
WIN_FIELDS = {2, 4, 8, .... и т.д}