你好,我有點菜鳥..我試圖讓程式從一次開始列印每個元素的數量是前一個元素的兩倍..我找到了一個解決方案,但看起來很笨重..有更好的版本..這里是代碼 。
a=['h','ha','hah','jaja','kkkkk']
s=.5
for x in range(len(a)):
s=int(s*2)
n=1
for j in range (s):
print(str(n) str(a[x]))
n =1
uj5u.com熱心網友回復:
您的代碼按原樣可讀且功能齊全,但如果您想精簡它,您可以使用enumerate()減少一些分配,它是一個 python 內置函式,可為您生成遞增變數 s 和 n,因此您沒有自己管理它們:
a=['h','ha','hah','jaja','kkkkk']
for s, x in enumerate(range(len(a))):
for n, j in enumerate(range(2**s)):
print(str(n 1), str(a[x]))
采用這種方法意味著我們通過 2**s 而不是每次迭代加倍 s 來計算冪,但這并不是一個非常重大的變化。此外,如果您將多個變數作為單獨的引數傳遞給 print(),作為 print(a,b) 而不是 print(a b),print() 將自動為您填充一個空格,這有助于提高可讀性。
uj5u.com熱心網友回復:
您可以使用該pow()函式在每次迭代中計算 2 的下一個倍數并使用它來重復print():
for i in range(len(a)):
for j in range(pow(2, i)):
print(a[i])
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/405906.html
標籤:
