How to efficiently get combinations of array of tuples [int, string] and compare it? Announcing the arrival of Valued Associate #679: Cesar Manara Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)Tapes, Trees, Trunks & TalliesHow to get a centered mean (excluding max and min value) of a list in Python?Get argument as unicode string from argparse in Python 2 and 3Find and display best Poker handAlgorithm that receives a dictionary, converts it to a GET string, and is optimized for big datahow to filter text from a string and convert it to dictionary and check for matching values in pythonControl the input of the user according to a sample string and get some info from itCompare an array with a file and form groups from elements of an array
Why are Kinder Surprise Eggs illegal in the USA?
What does the "x" in "x86" represent?
How can I make names more distinctive without making them longer?
Is the Standard Deduction better than Itemized when both are the same amount?
Naming the result of a source block
Echoing a tail command produces unexpected output?
List of Python versions
String `!23` is replaced with `docker` in command line
Identifying polygons that intersect with another layer using QGIS?
Using audio cues to encourage good posture
Output the ŋarâþ crîþ alphabet song without using (m)any letters
What is Wonderstone and are there any references to it pre-1982?
What exactly is a "Meth" in Altered Carbon?
How to answer "Have you ever been terminated?"
How to find all the available tools in mac terminal?
Why did the rest of the Eastern Bloc not invade Yugoslavia?
Seeking colloquialism for “just because”
Why did the Falcon Heavy center core fall off the ASDS OCISLY barge?
Short Story with Cinderella as a Voo-doo Witch
How to align text above triangle figure
What does an IRS interview request entail when called in to verify expenses for a sole proprietor small business?
How to bypass password on Windows XP account?
How come Sam didn't become Lord of Horn Hill?
Fundamental Solution of the Pell Equation
How to efficiently get combinations of array of tuples [int, string] and compare it?
Announcing the arrival of Valued Associate #679: Cesar Manara
Planned maintenance scheduled April 17/18, 2019 at 00:00UTC (8:00pm US/Eastern)Tapes, Trees, Trunks & TalliesHow to get a centered mean (excluding max and min value) of a list in Python?Get argument as unicode string from argparse in Python 2 and 3Find and display best Poker handAlgorithm that receives a dictionary, converts it to a GET string, and is optimized for big datahow to filter text from a string and convert it to dictionary and check for matching values in pythonControl the input of the user according to a sample string and get some info from itCompare an array with a file and form groups from elements of an array
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
$begingroup$
Just wondering if there is a way to run the piece of code below more efficiently. I just started to get acquainted with parallel program and think this might be an answer? But I have no idea how to do it using imap or processes...any help?
This is what the function is doing: it gets two arrays of tuples with 5 items each - hand = [H1,H2,H3,H4,H5] and board = [B1,B2,B3,B4,B5]
What I need to do is check all arrays formed by 2 items from hand and 3 items from board, like combination = [Hn,Hm,Bi,Bj,Bk] (100 combinations in total)
Then I need to compare each one of the combinations against a dictionary to get the combination rank, and then return the best array (best rank) and the rank itself:
def check_hand(hand, board, dictionary_A, dictionary_B):
best_hand = []
first_int = True
for h1 in range (0, 4):
for h2 in range (h1+1, 5):
for b1 in range (0, 3):
for b2 in range (b1+1, 4):
for b3 in range (b2+1, 5):
hand_check = []
hand_check.append(mao[m1])
hand_check.append(mao[m2])
hand_check.append(board[b1])
hand_check.append(board[b2])
hand_check.append(board[b3])
hand_check = sort(hand_check) //Custom sort for my array of objects
hand_ranks = "".join([str(hand_check[0].rank),str(hand_check[1].rank),str(hand_check[2].rank),str(hand_check[3].rank),str(hand_check[4].rank)])
if (hand_check[0].suit == hand_check[1].suit and hand_check[1].suit == hand_check[2].suit and hand_check[2].suit == hand_check[3].suit and hand_check[3].suit == hand_check[4].suit):
control = [dictionary_A[hand_ranks][0],dictionary_A[hand_ranks][1]]
else:
control = [dictionary_B[hand_ranks][0],dictionary_B[hand_ranks][1]]
if first_int:
best_hand = hand_check
rank = control
first_int = False
elif (int(control[0]) > int(rank[0])):
rank = control
best_hand = hand_check
elif (int(control[0]) == int(rank[0])):
if (int(control[1]) > int(rank[1])):
rank = control
best_hand = hand_check
return best_hand, rank[0]
I need to run this check for 2 million different hands and interact over 1000 times for every hand (Ideally I would run it for at least 100000 times for every hand, for a more statistically accurate result).
Any ideas on how to make it more efficient?
python dictionary multiprocessing
New contributor
$endgroup$
add a comment |
$begingroup$
Just wondering if there is a way to run the piece of code below more efficiently. I just started to get acquainted with parallel program and think this might be an answer? But I have no idea how to do it using imap or processes...any help?
This is what the function is doing: it gets two arrays of tuples with 5 items each - hand = [H1,H2,H3,H4,H5] and board = [B1,B2,B3,B4,B5]
What I need to do is check all arrays formed by 2 items from hand and 3 items from board, like combination = [Hn,Hm,Bi,Bj,Bk] (100 combinations in total)
Then I need to compare each one of the combinations against a dictionary to get the combination rank, and then return the best array (best rank) and the rank itself:
def check_hand(hand, board, dictionary_A, dictionary_B):
best_hand = []
first_int = True
for h1 in range (0, 4):
for h2 in range (h1+1, 5):
for b1 in range (0, 3):
for b2 in range (b1+1, 4):
for b3 in range (b2+1, 5):
hand_check = []
hand_check.append(mao[m1])
hand_check.append(mao[m2])
hand_check.append(board[b1])
hand_check.append(board[b2])
hand_check.append(board[b3])
hand_check = sort(hand_check) //Custom sort for my array of objects
hand_ranks = "".join([str(hand_check[0].rank),str(hand_check[1].rank),str(hand_check[2].rank),str(hand_check[3].rank),str(hand_check[4].rank)])
if (hand_check[0].suit == hand_check[1].suit and hand_check[1].suit == hand_check[2].suit and hand_check[2].suit == hand_check[3].suit and hand_check[3].suit == hand_check[4].suit):
control = [dictionary_A[hand_ranks][0],dictionary_A[hand_ranks][1]]
else:
control = [dictionary_B[hand_ranks][0],dictionary_B[hand_ranks][1]]
if first_int:
best_hand = hand_check
rank = control
first_int = False
elif (int(control[0]) > int(rank[0])):
rank = control
best_hand = hand_check
elif (int(control[0]) == int(rank[0])):
if (int(control[1]) > int(rank[1])):
rank = control
best_hand = hand_check
return best_hand, rank[0]
I need to run this check for 2 million different hands and interact over 1000 times for every hand (Ideally I would run it for at least 100000 times for every hand, for a more statistically accurate result).
Any ideas on how to make it more efficient?
python dictionary multiprocessing
New contributor
$endgroup$
add a comment |
$begingroup$
Just wondering if there is a way to run the piece of code below more efficiently. I just started to get acquainted with parallel program and think this might be an answer? But I have no idea how to do it using imap or processes...any help?
This is what the function is doing: it gets two arrays of tuples with 5 items each - hand = [H1,H2,H3,H4,H5] and board = [B1,B2,B3,B4,B5]
What I need to do is check all arrays formed by 2 items from hand and 3 items from board, like combination = [Hn,Hm,Bi,Bj,Bk] (100 combinations in total)
Then I need to compare each one of the combinations against a dictionary to get the combination rank, and then return the best array (best rank) and the rank itself:
def check_hand(hand, board, dictionary_A, dictionary_B):
best_hand = []
first_int = True
for h1 in range (0, 4):
for h2 in range (h1+1, 5):
for b1 in range (0, 3):
for b2 in range (b1+1, 4):
for b3 in range (b2+1, 5):
hand_check = []
hand_check.append(mao[m1])
hand_check.append(mao[m2])
hand_check.append(board[b1])
hand_check.append(board[b2])
hand_check.append(board[b3])
hand_check = sort(hand_check) //Custom sort for my array of objects
hand_ranks = "".join([str(hand_check[0].rank),str(hand_check[1].rank),str(hand_check[2].rank),str(hand_check[3].rank),str(hand_check[4].rank)])
if (hand_check[0].suit == hand_check[1].suit and hand_check[1].suit == hand_check[2].suit and hand_check[2].suit == hand_check[3].suit and hand_check[3].suit == hand_check[4].suit):
control = [dictionary_A[hand_ranks][0],dictionary_A[hand_ranks][1]]
else:
control = [dictionary_B[hand_ranks][0],dictionary_B[hand_ranks][1]]
if first_int:
best_hand = hand_check
rank = control
first_int = False
elif (int(control[0]) > int(rank[0])):
rank = control
best_hand = hand_check
elif (int(control[0]) == int(rank[0])):
if (int(control[1]) > int(rank[1])):
rank = control
best_hand = hand_check
return best_hand, rank[0]
I need to run this check for 2 million different hands and interact over 1000 times for every hand (Ideally I would run it for at least 100000 times for every hand, for a more statistically accurate result).
Any ideas on how to make it more efficient?
python dictionary multiprocessing
New contributor
$endgroup$
Just wondering if there is a way to run the piece of code below more efficiently. I just started to get acquainted with parallel program and think this might be an answer? But I have no idea how to do it using imap or processes...any help?
This is what the function is doing: it gets two arrays of tuples with 5 items each - hand = [H1,H2,H3,H4,H5] and board = [B1,B2,B3,B4,B5]
What I need to do is check all arrays formed by 2 items from hand and 3 items from board, like combination = [Hn,Hm,Bi,Bj,Bk] (100 combinations in total)
Then I need to compare each one of the combinations against a dictionary to get the combination rank, and then return the best array (best rank) and the rank itself:
def check_hand(hand, board, dictionary_A, dictionary_B):
best_hand = []
first_int = True
for h1 in range (0, 4):
for h2 in range (h1+1, 5):
for b1 in range (0, 3):
for b2 in range (b1+1, 4):
for b3 in range (b2+1, 5):
hand_check = []
hand_check.append(mao[m1])
hand_check.append(mao[m2])
hand_check.append(board[b1])
hand_check.append(board[b2])
hand_check.append(board[b3])
hand_check = sort(hand_check) //Custom sort for my array of objects
hand_ranks = "".join([str(hand_check[0].rank),str(hand_check[1].rank),str(hand_check[2].rank),str(hand_check[3].rank),str(hand_check[4].rank)])
if (hand_check[0].suit == hand_check[1].suit and hand_check[1].suit == hand_check[2].suit and hand_check[2].suit == hand_check[3].suit and hand_check[3].suit == hand_check[4].suit):
control = [dictionary_A[hand_ranks][0],dictionary_A[hand_ranks][1]]
else:
control = [dictionary_B[hand_ranks][0],dictionary_B[hand_ranks][1]]
if first_int:
best_hand = hand_check
rank = control
first_int = False
elif (int(control[0]) > int(rank[0])):
rank = control
best_hand = hand_check
elif (int(control[0]) == int(rank[0])):
if (int(control[1]) > int(rank[1])):
rank = control
best_hand = hand_check
return best_hand, rank[0]
I need to run this check for 2 million different hands and interact over 1000 times for every hand (Ideally I would run it for at least 100000 times for every hand, for a more statistically accurate result).
Any ideas on how to make it more efficient?
python dictionary multiprocessing
python dictionary multiprocessing
New contributor
New contributor
New contributor
asked 2 mins ago
Vandré Dreer BonaiteVandré Dreer Bonaite
1
1
New contributor
New contributor
add a comment |
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "196"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Vandré Dreer Bonaite is a new contributor. Be nice, and check out our Code of Conduct.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f217597%2fhow-to-efficiently-get-combinations-of-array-of-tuples-int-string-and-compare%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Vandré Dreer Bonaite is a new contributor. Be nice, and check out our Code of Conduct.
Vandré Dreer Bonaite is a new contributor. Be nice, and check out our Code of Conduct.
Vandré Dreer Bonaite is a new contributor. Be nice, and check out our Code of Conduct.
Vandré Dreer Bonaite is a new contributor. Be nice, and check out our Code of Conduct.
Thanks for contributing an answer to Code Review Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f217597%2fhow-to-efficiently-get-combinations-of-array-of-tuples-int-string-and-compare%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e)
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom))
StackExchange.using('gps', function() StackExchange.gps.track('embedded_signup_form.view', location: 'question_page' ); );
$window.unbind('scroll', onScroll);
;
$window.on('scroll', onScroll);
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown