Tell me more ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

I'm trying to load a big multidimensional array, first with strings (because stuff like 08 and 09 are registered as different type tokens) and then mapping them to integers.

strarray = [['08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08']
            ['49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00']
            ['81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65']
            ['52 70 95 23 04 60 11 42 69 24 68 56 01 32 56 71 37 02 36 91']
            ['22 31 16 71 51 67 63 89 41 92 36 54 22 40 40 28 66 33 13 80']
            ['24 47 32 60 99 03 45 02 44 75 33 53 78 36 84 20 35 17 12 50']
            ['32 98 81 28 64 23 67 10 26 38 40 67 59 54 70 66 18 38 64 70']
            ['67 26 20 68 02 62 12 20 95 63 94 39 63 08 40 91 66 49 94 21']
            ['24 55 58 05 66 73 99 26 97 17 78 78 96 83 14 88 34 89 63 72']
            ['21 36 23 09 75 00 76 44 20 45 35 14 00 61 33 97 34 31 33 95']
            ['78 17 53 28 22 75 31 67 15 94 03 80 04 62 16 14 09 53 56 92']
            ['16 39 05 42 96 35 31 47 55 58 88 24 00 17 54 24 36 29 85 57']
            ['86 56 00 48 35 71 89 07 05 44 44 37 44 60 21 58 51 54 17 58']
            ['19 80 81 68 05 94 47 69 28 73 92 13 86 52 17 77 04 89 55 40']
            ['04 52 08 83 97 35 99 16 07 97 57 32 16 26 26 79 33 27 98 66']
            ['88 36 68 87 57 62 20 72 03 46 33 67 46 55 12 32 63 93 53 69']
            ['04 42 16 73 38 25 39 11 24 94 72 18 08 46 29 32 40 62 76 36']
            ['20 69 36 41 72 30 23 88 34 62 99 69 82 67 59 85 74 04 36 16']
            ['20 73 35 29 78 31 90 01 74 31 49 71 48 86 81 16 23 57 05 54']
            ['01 70 54 71 83 51 54 69 16 92 33 48 61 43 52 01 89 19 67 48']]

numarray = map(int, strarray)

print numarray

However, when I try to run this, it gives me the error "list indices must be integer, not string"

Why is this happening?

share|improve this question
your starray is not a valid list` – dm03514 Mar 15 at 1:35
Add the commas in the end of each line. Then your code will show another error... Hint: split each element – JBernardo Mar 15 at 1:37

1 Answer

up vote 3 down vote accepted

You have a list if list of strings, so you need to unpack items of sub list, split them and apply int to each. Also it looks like you forgot to put commas to split top level list items. Try this:

strarray = [['08 02 22 97 38 15 00 40 00 75 04 05 07 78 52 12 50 77 91 08'],
        ['49 49 99 40 17 81 18 57 60 87 17 40 98 43 69 48 04 56 62 00'],
        ['81 49 31 73 55 79 14 29 93 71 40 67 53 88 30 03 49 13 36 65'],
        ...]
numaarray = [map(int, subL[0].split()) for subL in strarray]
share|improve this answer
Thanks! That worked. – Tetramputechture Mar 15 at 1:38
@Tetramputechture you are welcome – Artsiom Rudzenka Mar 15 at 1:41

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.