我有一個非常具體的問題,我不確定如何繼續。
我有一個數字串列,我想從中提取一些特定的模式,在那里我遍歷串列并創建一個新的,用一個例子更容易解釋。
假設我有一個串列,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。任何幫助都會很棒,謝謝。
uj5u.com熱心網友回復:
您可以使用字典將字母分配給數字,然后再次閱讀該字典以訪問相關字母。它有 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']
uj5u.com熱心網友回復:
我建議使用 zip 函式將數字與字母對應起來,而對于回圈,使用“for”函式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/372448.html
