Jump to content

pyhton get character from list

Wictorian

So I have a list containing 20 lists each with 20 characters.

columnLists.append(rowLists[c][0])

when I write this I expect to get a character. Instead I get a whole list. How can I only get a character

 

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Wictorian said:

when I write this I expect to get a character. Instead I get a whole list. How can I only get a character

Can we see the code where you create the list of lists of characters?

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

5 minutes ago, straight_stewie said:

Can we see the code where you create the list of lists of characters?

a = """
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"""

rowLists = []
rows = a.replace("\r", "").split("\n")
for row in rows:
    if(not len(row)):
        continue
    rowLists.append(row.split())
print(rowLists)

 

Link to comment
Share on other sites

Link to post
Share on other sites

43 minutes ago, Wictorian said:

So I have a list containing 20 lists each with 20 characters.



columnLists.append(rowLists[c][0])

when I write this I expect to get a character. Instead I get a whole list. How can I only get a character

 

Is that inside a loop? Because running that on it's own (also replacing c with an integer) it only gives out 1 object from the list.

Link to comment
Share on other sites

Link to post
Share on other sites

8 minutes ago, AndreiArgeanu said:

Is that inside a loop? Because running that on it's own (also replacing c with an integer) it only gives out 1 object from the list.

yeah its in a loop

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, Wictorian said:

yeah its in a loop

Then most likely there's something wrong in your loop, perhaps it gathers way more characters then it's supposed to.

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, AndreiArgeanu said:

Then most likely there's something wrong in your loop, perhaps it gathers way more characters then it's supposed to.

for d in range(19):
    for e in range(19):
        columnLists[d].append(rowLists[e][d])

I am not sure if its right but this is my loop.

Link to comment
Share on other sites

Link to post
Share on other sites

12 minutes ago, Wictorian said:

for d in range(19):
    for e in range(19):
        columnLists[d].append(rowLists[e][d])

I am not sure if its right but this is my loop.

That's because you're running the for loop below 19 times therefore you get 361 items in your list. Also the [d] that follows columLists gives out an index error. So the for loop for e in range(19): is ran 19 times. That's why you're getting so many items.

 

Link to comment
Share on other sites

Link to post
Share on other sites

I'm confused about your problem. This code gives me what I would expect, which is a list of lists of strings and the first string in the first list:

a = """
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"""

rowLists = []
rows = a.replace("\r", "").split("\n")
for row in rows:
    if(not len(row)):
        continue
    rowLists.append(row.split())
print(rowLists)
print()
print(rowLists[0][0])

 

 

Is the problem possibly that you are expecting a single character but are instead getting a string? For example, rowLists[0][0] gives me "08" rather than '0'.

ENCRYPTION IS NOT A CRIME

Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, straight_stewie said:

I'm confused about your problem. This code gives me what I would expect, which is a list of lists of strings and the first string in the first list:



a = """
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"""

rowLists = []
rows = a.replace("\r", "").split("\n")
for row in rows:
    if(not len(row)):
        continue
    rowLists.append(row.split())
print(rowLists)
print()
print(rowLists[0][0])

 

 

Is the problem possibly that you are expecting a single character but are instead getting a string? For example, rowLists[0][0] gives me "08" rather than '0'.

Yeah I was confused about it too.

No I expect to get a two digit number but I think I solved it anyways.

 

edit : Ohhh,  instead of [c][0] ı must have put [0][c}

Edited by Wictorian
Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×