2017-09-01 10 views
0

Ich benutze Python 3, um eine Liste zufälliger Würfelwürfe zu erstellen und addiere sie, wenn i versuche, alle Summen hinzuzufügen, die es mir gibt TypeError: nicht unterstützte Operandentyp (e) für +: 'int' und 'list. Was ist zu tun?Versuchte verschachtelte Listen zu summieren, aber Fehler zu erhalten TypeError: nicht unterstützte Operandentypen für +: 'int' und 'list'

count = 0 
lista=[[] for q in range(5)] 
while count<len(lista): 
    import random 
    c=random.randrange(1,7,1) 
    lista[count].append(c) 
    count += 1 

print(lista) 
total=sum(lista) 

Antwort

0

Nichts für ungut, aber oh mein Gott, das ist so unpythonistisch, dass meine Augen bluten. Aber offensichtlich musst du irgendwo anfangen;) Ich schätze du hast C Entwicklung vorher gemacht. In Python müssen Speicher oder Arrays nicht vorab zugewiesen werden. Sie können auch direkt über jedes iterierbare Element iterieren, ohne dass ein zunehmender ganzzahliger Index verwendet werden muss.

Just do:

import random 
lista = [random.randrange(1, 7, 1) for q in range(5)] 
print(lista) 
total = sum(lista) 

Diese lista als eine Liste von fünf ganzen Zahlen zurück von random.randrange() zu schaffen.

Ihr Problem ist: Wenn Sie lista=[[] for q in range(5)] tun, erhalten Sie eine Liste von 5 leeren Listen ([[], [], [], [], []]). Dann, wenn Sie lista[count].append(c) Sie am Ende mit einer Liste der Liste, die jeweils eine ganze Zahl ([[5], [1], [3], [4], [3]]). sum wird dann versuchen, die inneren Listen zu summieren, nicht die ganzen Zahlen. Das scheitert.

+0

Dies ist ein besserer Ansatz hinzuzufügen .. –

1

Hallo Sie versuchen int Wert hinzufügen So Typenkonflikt Fehler aufzulisten, Sie müssen versuchen, int-Wert mit Listenwert

count = 0 
total = 0 
lista=[[]for q in range(5)] 
while count<len(lista): 
    import random 
    c=random.randrange(1,7,1) 
    lista[count].append(c) 
    total += lista[count][0] 
    count += 1 
print(lista) 
print total 
Verwandte Themen