0

I have a dictionary, which records how many drum beats in every measure:

{0: 1, 1: 2, 2: 2, 3: 2, 4: 2, 5: 3, 6: 2, 7: 2, 8: 2, 9: 2, 10: 4, 11: 2, 12: 3, 13: 4, 14: 4, 15: 3, 16: 5, 17: 5, 18: 6, 19: 4, 20: 4, 21: 5, 22: 4, 23: 6, 24: 6, 25: 6, 26: 7, 27: 6, 28: 7, 29: 4, 30: 7, 31: 8, 32: 6, 33: 7, 34: 8, 35: 8, 36: 9, 37: 8, 38: 12, 39: 7, 40: 10, 41: 8, 42: 14, 43: 13, 44: 13, 45: 16} 

For example, there is a drum beat in first measure, and there are 16 drum beats in 46th measure.

Then I have another dictionary, which records the score(0~3) the player plays in every drum beat:

{0: 3, 1: 3, 2: 3, 3: 3, 4: 3, 5: 1, 6: 2, 7: 3, 8: 2, 9: 2, 10: 1, 11: 1, 12: 0, 13: 3, 14: 3, 15: 1, 16: 1, 17: 3, 18: 1, 19: 3, 20: 1, 21: 3, 22: 1, 23: 3, 24: 3, 25: 2, 26: 2, 27: 2, 28: 2, 29: 2, 30: 3, 31: 3, 32: 2, 33: 2, 34: 3, 35: 1, 36: 1, 37: 3, 38: 0, 39: 1, 40: 2, 41: 3, 42: 3, 43: 0, 44: 2, 45: 2, 46: 1, 47: 2, 48: 1, 49: 1, 50: 1, 51: 2, 52: 1, 53: 2, 54: 3, 55: 1, 56: 1, 57: 0, 58: 0, 59: 3, 60: 2, 61: 0, 62: 0, 63: 1, 64: 0, 65: 2, 66: 1, 67: 1, 68: 1, 69: 0, 70: 3, 71: 3, 72: 3, 73: 2, 74: 1, 75: 1, 76: 1, 77: 1, 78: 1, 79: 2, 80: 2, 81: 2, 82: 2, 83: 0, 84: 0, 85: 1, 86: 0, 87: 1, 88: 2, 89: 3, 90: 1, 91: 2, 92: 2, 93: 3, 94: 3, 95: 2, 96: 1, 97: 0, 98: 3, 99: 3, 100: 1, 101: 0, 102: 3, 103: 3, 104: 1, 105: 3, 106: 0, 107: 2, 108: 0, 109: 1, 110: 0, 111: 1, 112: 0, 113: 2, 114: 0, 115: 2, 116: 0, 117: 1, 118: 3, 119: 1, 120: 3, 121: 3, 122: 3, 123: 1, 124: 1, 125: 0, 126: 2, 127: 0, 128: 3, 129: 3, 130: 1, 131: 0, 132: 3, 133: 2, 134: 1, 135: 1, 136: 0, 137: 1, 138: 0, 139: 3, 140: 3, 141: 1, 142: 2, 143: 3, 144: 1, 145: 2, 146: 0, 147: 0, 148: 0, 149: 1, 150: 0, 151: 3, 152: 0, 153: 1, 154: 0, 155: 3, 156: 2, 157: 3, 158: 1, 159: 0, 160: 1, 161: 1, 162: 1, 163: 2, 164: 3, 165: 0, 166: 1, 167: 1, 168: 2, 169: 0, 170: 1, 171: 0, 172: 1, 173: 1, 174: 1, 175: 0, 176: 1, 177: 1, 178: 2, 179: 3, 180: 0, 181: 1, 182: 3, 183: 0, 184: 3, 185: 0, 186: 1, 187: 0, 188: 1, 189: 2, 190: 0, 191: 1, 192: 0, 193: 0, 194: 0, 195: 2, 196: 1, 197: 0, 198: 2, 199: 1, 200: 0, 201: 2, 202: 2, 203: 0, 204: 1, 205: 3, 206: 1, 207: 0, 208: 0, 209: 1, 210: 0, 211: 0, 212: 0, 213: 3, 214: 0, 215: 1, 216: 1, 217: 0, 218: 3, 219: 0, 220: 2, 221: 0, 222: 3, 223: 1, 224: 0, 225: 3, 226: 0, 227: 0, 228: 1, 229: 0, 230: 2, 231: 1, 232: 0, 233: 3, 234: 0, 235: 2, 236: 1, 237: 0, 238: 2, 239: 3, 240: 3, 241: 0, 242: 1, 243: 0, 244: 2, 245: 0, 246: 2, 247: 0, 248: 1, 249: 0, 250: 0, 251: 1, 252: 0, 253: 1, 254: 0, 255: 1, 256: 1, 257: 0, 258: 0, 259: 1, 260: 1, 261: 0, 262: 1, 263: 0, 264: 1, 265: 0, 266: 3, 267: 0, 268: 3} 

For example, The player got three points in first drum beat, and got three points in 269th drum beat.

Then I need to calculate the average score in every measure the player got. For example, the player got 3/1 = 3 points(average) in first measure, and got (3+3)/2 = 3(average) in second measure.

I know I need to use two for loops, but I don't know how to start with, can anyone help me? Thanks

More examples:

The average score in first measure the player got is 3/1 = 3, The average score in second measure the player got is (3+3)/2 = 3, The average score in third measure the player got is (3+3)/2 = 3, The average score in fourth measure the player got is (1+2)/2 = 1.5, The average score in fifth measure the player got is (3+2)/2 = 2.5, The average score in sixth measure the player got is (2+1+1)/3 = 1.33, The average score in seventh measure the player got is (0+3)/2 = 1.5, The average score in eighth measure the player got is (3+1)/2 = 2 ,etc. 
11
  • for 3rd measure it will be (3+3+3)/2, Right? Commented Nov 22, 2016 at 11:23
  • You'll need to better explain the the problem, add more example Commented Nov 22, 2016 at 11:25
  • for 3rd measure it will be (3+3)/2 Commented Nov 22, 2016 at 11:25
  • Why? What's the logic behind that? Commented Nov 22, 2016 at 11:26
  • 1
    Do you expect gaps, or why do you use dictionaries instead of simple lists? Commented Nov 22, 2016 at 11:45

2 Answers 2

2
Num_NumOfBeats_Mapping = {0: 1, 1: 2, 2: 2, 3: 2, 4: 2, 5: 3, 6: 2, 7: 2, 8: 2, 9: 2, 10: 4, 11: 2, 12: 3, 13: 4, 14: 4, 15: 3, 16: 5, 17: 5, 18: 6, 19: 4, 20: 4, 21: 5, 22: 4, 23: 6, 24: 6, 25: 6, 26: 7, 27: 6, 28: 7, 29: 4, 30: 7, 31: 8, 32: 6, 33: 7, 34: 8, 35: 8, 36: 9, 37: 8, 38: 12, 39: 7, 40: 10, 41: 8, 42: 14, 43: 13, 44: 13, 45: 16} result = {0: 3, 1: 3, 2: 3, 3: 3, 4: 3, 5: 1, 6: 2, 7: 3, 8: 2, 9: 2, 10: 1, 11: 1, 12: 0, 13: 3, 14: 3, 15: 1, 16: 1, 17: 3, 18: 1, 19: 3, 20: 1, 21: 3, 22: 1, 23: 3, 24: 3, 25: 2, 26: 2, 27: 2, 28: 2, 29: 2, 30: 3, 31: 3, 32: 2, 33: 2, 34: 3, 35: 1, 36: 1, 37: 3, 38: 0, 39: 1, 40: 2, 41: 3, 42: 3, 43: 0, 44: 2, 45: 2, 46: 1, 47: 2, 48: 1, 49: 1, 50: 1, 51: 2, 52: 1, 53: 2, 54: 3, 55: 1, 56: 1, 57: 0, 58: 0, 59: 3, 60: 2, 61: 0, 62: 0, 63: 1, 64: 0, 65: 2, 66: 1, 67: 1, 68: 1, 69: 0, 70: 3, 71: 3, 72: 3, 73: 2, 74: 1, 75: 1, 76: 1, 77: 1, 78: 1, 79: 2, 80: 2, 81: 2, 82: 2, 83: 0, 84: 0, 85: 1, 86: 0, 87: 1, 88: 2, 89: 3, 90: 1, 91: 2, 92: 2, 93: 3, 94: 3, 95: 2, 96: 1, 97: 0, 98: 3, 99: 3, 100: 1, 101: 0, 102: 3, 103: 3, 104: 1, 105: 3, 106: 0, 107: 2, 108: 0, 109: 1, 110: 0, 111: 1, 112: 0, 113: 2, 114: 0, 115: 2, 116: 0, 117: 1, 118: 3, 119: 1, 120: 3, 121: 3, 122: 3, 123: 1, 124: 1, 125: 0, 126: 2, 127: 0, 128: 3, 129: 3, 130: 1, 131: 0, 132: 3, 133: 2, 134: 1, 135: 1, 136: 0, 137: 1, 138: 0, 139: 3, 140: 3, 141: 1, 142: 2, 143: 3, 144: 1, 145: 2, 146: 0, 147: 0, 148: 0, 149: 1, 150: 0, 151: 3, 152: 0, 153: 1, 154: 0, 155: 3, 156: 2, 157: 3, 158: 1, 159: 0, 160: 1, 161: 1, 162: 1, 163: 2, 164: 3, 165: 0, 166: 1, 167: 1, 168: 2, 169: 0, 170: 1, 171: 0, 172: 1, 173: 1, 174: 1, 175: 0, 176: 1, 177: 1, 178: 2, 179: 3, 180: 0, 181: 1, 182: 3, 183: 0, 184: 3, 185: 0, 186: 1, 187: 0, 188: 1, 189: 2, 190: 0, 191: 1, 192: 0, 193: 0, 194: 0, 195: 2, 196: 1, 197: 0, 198: 2, 199: 1, 200: 0, 201: 2, 202: 2, 203: 0, 204: 1, 205: 3, 206: 1, 207: 0, 208: 0, 209: 1, 210: 0, 211: 0, 212: 0, 213: 3, 214: 0, 215: 1, 216: 1, 217: 0, 218: 3, 219: 0, 220: 2, 221: 0, 222: 3, 223: 1, 224: 0, 225: 3, 226: 0, 227: 0, 228: 1, 229: 0, 230: 2, 231: 1, 232: 0, 233: 3, 234: 0, 235: 2, 236: 1, 237: 0, 238: 2, 239: 3, 240: 3, 241: 0, 242: 1, 243: 0, 244: 2, 245: 0, 246: 2, 247: 0, 248: 1, 249: 0, 250: 0, 251: 1, 252: 0, 253: 1, 254: 0, 255: 1, 256: 1, 257: 0, 258: 0, 259: 1, 260: 1, 261: 0, 262: 1, 263: 0, 264: 1, 265: 0, 266: 3, 267: 0, 268: 3} sum = 0 start_value = 0 for n in range(len(Num_NumOfBeats_Mapping)): i = Num_NumOfBeats_Mapping[n] for s in range(start_value,start_value+i): sum += result[s] Average_result.append(sum/i) sum = 0 start_value += i print Average_result 

Average_result is what you want.

Sign up to request clarification or add additional context in comments.

Comments

0
beats = {0: 1, 1: 2, 2: 2, 3: 2, 4: 2, 5: 3, 6: 2, 7: 2, 8: 2, 9: 2, 10: 4, 11: 2, 12: 3, 13: 4, 14: 4, 15: 3, 16: 5, 17: 5, 18: 6, 19: 4, 20: 4, 21: 5, 22: 4, 23: 6, 24: 6, 25: 6, 26: 7, 27: 6, 28: 7, 29: 4, 30: 7, 31: 8, 32: 6, 33: 7, 34: 8, 35: 8, 36: 9, 37: 8, 38: 12, 39: 7, 40: 10, 41: 8, 42: 14, 43: 13, 44: 13, 45: 16} score = {0: 3, 1: 3, 2: 3, 3: 3, 4: 3, 5: 1, 6: 2, 7: 3, 8: 2, 9: 2, 10: 1, 11: 1, 12: 0, 13: 3, 14: 3, 15: 1, 16: 1, 17: 3, 18: 1, 19: 3, 20: 1, 21: 3, 22: 1, 23: 3, 24: 3, 25: 2, 26: 2, 27: 2, 28: 2, 29: 2, 30: 3, 31: 3, 32: 2, 33: 2, 34: 3, 35: 1, 36: 1, 37: 3, 38: 0, 39: 1, 40: 2, 41: 3, 42: 3, 43: 0, 44: 2, 45: 2, 46: 1, 47: 2, 48: 1, 49: 1, 50: 1, 51: 2, 52: 1, 53: 2, 54: 3, 55: 1, 56: 1, 57: 0, 58: 0, 59: 3, 60: 2, 61: 0, 62: 0, 63: 1, 64: 0, 65: 2, 66: 1, 67: 1, 68: 1, 69: 0, 70: 3, 71: 3, 72: 3, 73: 2, 74: 1, 75: 1, 76: 1, 77: 1, 78: 1, 79: 2, 80: 2, 81: 2, 82: 2, 83: 0, 84: 0, 85: 1, 86: 0, 87: 1, 88: 2, 89: 3, 90: 1, 91: 2, 92: 2, 93: 3, 94: 3, 95: 2, 96: 1, 97: 0, 98: 3, 99: 3, 100: 1, 101: 0, 102: 3, 103: 3, 104: 1, 105: 3, 106: 0, 107: 2, 108: 0, 109: 1, 110: 0, 111: 1, 112: 0, 113: 2, 114: 0, 115: 2, 116: 0, 117: 1, 118: 3, 119: 1, 120: 3, 121: 3, 122: 3, 123: 1, 124: 1, 125: 0, 126: 2, 127: 0, 128: 3, 129: 3, 130: 1, 131: 0, 132: 3, 133: 2, 134: 1, 135: 1, 136: 0, 137: 1, 138: 0, 139: 3, 140: 3, 141: 1, 142: 2, 143: 3, 144: 1, 145: 2, 146: 0, 147: 0, 148: 0, 149: 1, 150: 0, 151: 3, 152: 0, 153: 1, 154: 0, 155: 3, 156: 2, 157: 3, 158: 1, 159: 0, 160: 1, 161: 1, 162: 1, 163: 2, 164: 3, 165: 0, 166: 1, 167: 1, 168: 2, 169: 0, 170: 1, 171: 0, 172: 1, 173: 1, 174: 1, 175: 0, 176: 1, 177: 1, 178: 2, 179: 3, 180: 0, 181: 1, 182: 3, 183: 0, 184: 3, 185: 0, 186: 1, 187: 0, 188: 1, 189: 2, 190: 0, 191: 1, 192: 0, 193: 0, 194: 0, 195: 2, 196: 1, 197: 0, 198: 2, 199: 1, 200: 0, 201: 2, 202: 2, 203: 0, 204: 1, 205: 3, 206: 1, 207: 0, 208: 0, 209: 1, 210: 0, 211: 0, 212: 0, 213: 3, 214: 0, 215: 1, 216: 1, 217: 0, 218: 3, 219: 0, 220: 2, 221: 0, 222: 3, 223: 1, 224: 0, 225: 3, 226: 0, 227: 0, 228: 1, 229: 0, 230: 2, 231: 1, 232: 0, 233: 3, 234: 0, 235: 2, 236: 1, 237: 0, 238: 2, 239: 3, 240: 3, 241: 0, 242: 1, 243: 0, 244: 2, 245: 0, 246: 2, 247: 0, 248: 1, 249: 0, 250: 0, 251: 1, 252: 0, 253: 1, 254: 0, 255: 1, 256: 1, 257: 0, 258: 0, 259: 1, 260: 1, 261: 0, 262: 1, 263: 0, 264: 1, 265: 0, 266: 3, 267: 0, 268: 3} beatCounter = 0 for k in beats: #for each key in beats temp = 0 #reset temp to 0 for i in range(beats[k]): #for the number of beats in each measure temp += (score[beatCounter]) #add scores for that measure beatCounter += 1 print("Average of measure", k + 1, " is", temp/beats[k]) 

and beatCounter keeps track of where in the score dict you are

2 Comments

the result is not what I want, the result I want is that the average score in each measure the player got. For example, the average score in first measure the player got is score[0]/beats[0] = 3, the average score in second measure the player got is (score[1]+score[2])/beats[1] = 3, the average score in third measure the player got is (score[3]+score[4])/beats[2] = 3, the average score in fourth measure the player got is (1+2)/2 = 1.5 ((score[5]+score[6])/beats[3]), which means the count of numerator is denominator.
That code does print out the average score in each measure did you run the code?

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.