拨开荷叶行,寻梦已然成。仙女莲花里,翩翩白鹭情。
IMG-LOGO
主页 文章列表 打印串列中的每个元素的数量是前一个元素的两倍

打印串列中的每个元素的数量是前一个元素的两倍

白鹭 - 2022-02-28 2081 0 0

你好,我有点菜鸟..我试图让程序从一次开始打印每个元素的数量是前一个元素的两倍..我找到了一个解决方案,但看起来很笨重..有更好的版本..这里是代码 。

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])
标签:

0 评论

发表评论

您的电子邮件地址不会被公开。 必填的字段已做标记 *