2017-04-21 12 views
-2

Ich möchte 1.00000 in einer Liste speichern und die Liste sollte 1047 mal durchlaufen. Jeder weiß, wie man 1.00000 an allen Stellen in einer Liste mit loop speichert.Python: Float-Wert in der Liste speichern

Ich habe diesen Code versucht:

print(len(data)) 

for content in range(1,len(data)): 
    globals()[content.append(1.00000)] 

und ich habe diesen Fehler:

Traceback (most recent call last):
File "G:\Setups\Python\chi-1.py", line 24, in <module>
globals()[content.append(1.00000)]
AttributeError: 'int' object has no attribute 'append'

Vielen Dank im Voraus.

+0

Es ist gut, dass Sie es versucht haben. Also, bitte posten Sie es in der Frage. – doptimusprime

Antwort

5

Sie können es list comprehension mit tun:

>>> lst = [1.00000 for x in range(0, 1047)] 
>>> len(lst) 
1047 

, wenn Sie möchten, die Liste String '1.00000' Verwendung format(1.000000, '.5f')

>>> lst = [format(1.000000, '.5f') for x in range(0, 1047)] 
>>> len(lst) 
1047 
>>> lst 
>>>['1.00000', '1.00000', '1.00000', '1.00000', '1.00000', '1.00000', '1.00000', '1.00000', '1.00000'......] 
+0

Ich habe das versucht. Es hat Danke geklappt. Aber jetzt, wenn ich den Inhalt der Liste drucken. Es zeigt nur 1,0 und nicht 1,00000 Hilfe mit diesem auch ..! –

+0

Ändern Sie 1.00000 zu "1.00000", da ich glaube, dass Sie ein Str anstelle eines Floats wollen – abccd

+0

Ich möchte keine Zeichenfolge. Ich möchte 5 Dezimalstellen in einer Liste speichern –

1

Sie können "multiplizieren" Listen in Python enthält. Multiplikation ist eine implizite Schleife:

lst = [1.0] * 1047 
len(lst) 
#1047 
+0

Versucht dies auch .. Es hat auch funktioniert Aber es zeigte die gleiche 1.0 nur noch Wenn ich 1,00000 statt 1,0 multipliziert. –

+0

Es gibt keinen Unterschied zwischen 1.0 und 1.0000. Es ist die gleiche Nummer. – DyZ