我有一個非常具體的問題,我不確定如何繼續。
我有一個數字列表,我想從中提取一些特定的模式,在那裡我遍歷列表並創建一個新的,用一個例子更容易解釋。
假設我有一個列表,a = [2, 9, 3, 2, 3, 5, 7, 9]。
我想對這個列表做的是一次循環 4 個數字,並根據它們出現在序列中的時間給它們對應的字母。
即前四個數字 = 2932 = ABCA
第二個數字序列 = 9323 = ABCB
第三個序列 = 3235 = ABAC
第四個序列 = 2357 = ABCD
第五個序列 = 3579 = ABCD
然後我想把這些序列添加到另一個列表中,現在看起來像,
b = [ABCA, ABCB, ABAC, ABCD, ABCD]
我真的不確定代碼的格式應該如何,新列表的長度將始終比原始列表少 3。任何幫助都會很棒,謝謝。
您可以使用字典將字母分配給數字,然後再次閱讀該字典以訪問相關字母。它有 2 個循環,這並不理想,但它可以完成工作:
a = [2, 9, 3, 2, 3, 5, 7, 9]
len_a = len(a)
output = []
letters = 'ABCD'
for i in range(len_a-3):
d = {}
k = 0
for j in a[i:i+4]:
if j not in d:
d[j] = letters[k]
k += 1
else:
continue
letter_assignment = ''.join([d[j] for j in a[i:i+4]])
output.append(letter_assignment)
輸出:
print(output)
# ['ABCA', 'ABCB', 'ABAC', 'ABCD', 'ABCD']
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句