【发布时间】:2021-12-31 13:07:20
【问题描述】:
代码如下:
count_1 = 0
count_0 = 0
list = ('001111011011','000110001010','011010111111')`
for i in list:
index = 0
y = i[index]
if y == "1":
count_1 = count_1 + 1
if y == "0":
count_0 = count_0 + 1
if count_1 > count_0:
for i in list:
final_after_1 = []
if i[0] == "1":
final_after_1.append(i)
formatted = (','.join(final_after_1))
if count_0 > count_1:
for i in list:
final_after_1 = []
if i[0] == "0":
final_after_1.append(i)
formatted = (','.join(final_after_1))
if count_0 == count_1:
for i in list:
final_after_1 = []
if i[0] == "1":
final_after_1.append(i)
print(final_after_1)
formatted = (','.join(final_after_1))
print(formatted)
(如果这个问题措辞不好,请提前道歉,这是我第一次提问)。
除了这个问题之外,这段代码运行良好。它旨在识别列表中每个 12 位数字的第一个索引,然后确定在该位置更常见的是 1 还是 0。然后,它选择第一个位置具有更常见数字的所有数字并将它们添加到列表中。我想在程序结束时打印这个列表。
我已经定义了一个变量(称为格式化)以等于各种数字的列表。当我在定义它的循环中打印它时,它会打印所有应该在列表中的数字,如下所示:
当我像上面的代码那样在循环之外打印它时,它只返回最终数字:
011010111111
而像这样在循环中打印它:
if count_0 > count_1:
for i in list:
final_after_1 = []
if i[0] == "0":
final_after_1.append(i)
formatted = (','.join(final_after_1))
print(formatted)
确实返回这个完整的所需列表:
001111011011
000110001010
011010111111
任何想法为什么会发生这种情况?
【问题讨论】:
-
您的代码没有标识,添加一些代码以补充您的问题时要小心
标签: python loops variables printing