我binary_list
是「000」字符串列表,「001」,「010」,...附加價值列出並添加到字典
我試圖加入到字典的數量1在每個位串中。 他的字典將與n
對出現的字符串
我似乎無法位的字符串追加到一個列表,然後將其添加到字典中的1的每個數字的大小來創建。當我運行的代碼我得到:
input: sortbits(3)
000
001
010
011
100
101
110
111
{0: [], 1: [], 2: []}
正確的輸出是:
000
001
010
011
100
101
110
111
{0: [000], 1: [001, 010, 100], 2: [011,101, 110], 3: [111]}
我的代碼:
def sortbit(n):
max_num = 2**n
binary_list = []
for x in range(0,max_num):
stringy = []
for a in range(n):
stringy.append(str(x%2))
x //= 2
print ''.join(reversed(stringy))
stringy_list = ''.join(reversed(stringy))
binary_list.append(stringy_list)
count_dict = dict.fromkeys(range(0,n+1))
for element in binary_list:
count = 0
value_list = []
for character in element:
if character == '1':
count += 1
for y in count_dict:
if y == str(count):
value_list.append(element)
count_dict[y] = value_list
print count_dict
正常'dict'有一個'setdefault'方法,可以在這裏使用,而不是用空列表初始化一個字典。 –
@iCodez 這是簡單,但我不知道爲什麼我收到錯誤 '回溯(最近最後一次通話): 文件「」,1號線,在 文件「facebook_prob.py」第23行,in sortbit count_dict [element.count('1')]。append(element) AttributeError:'NoneType'對象沒有屬性'追加' ' –
Liondancer
我也不知道。也許你在其他地方定義了'element'。我給出的代碼經過測試和工作。 – iCodez