簡體   English   中英

通過列表長度不同的索引分配Python變量

[英]Python Variable Assignment by Index of Differing List Length

我有逐行分析的大型數據集。 示例數據線為100 0 0 100 1 0 100 2 0 100 3 0 100 4 0 在此,緊隨100的兩個條目包含有關該數據的信息(譯為英文)。 因此,在第一條目100總是解密是根據它的值(0,1,2,3,或4)和之后的第二個條目100總是破譯根據條目1的值(即,如果條目1 = 0條目2 = ____,或者如果條目1 = 1條目2 = _____等等)。

我已經存儲在數據線data為列表。 100后面總是有兩個條目,但我不確定給定行中將出現100次數-示例數據行有5個實例,每個實例有100

當前代碼:(忽略column ,這是我用來建立data的原始列表)

data = [num for num in column[2:] if num != 100]
entry1 = data[1]
entry2 = data[2]
info_dict1 = {0: 'absolute', 1: 'minimum', 2: 'maximum', 3: 'median', 4: 'mode'}
info1 = info_dict1.get(entry1, 'not found')
info_dict2 = {'absolute': 'value', 'minimum': 'increase', 'maximum': 'increase'}
info2 = info_dict2.get(info1, 'not found')
print(info1, info2)

我很難使它適用於出現100未知數據行。 我也在努力尋找准確的Pythonic解決方案。

對於提供的示例數據,我希望結果看起來像: absolute value minimum increase maximum increase median not found mode not found

重要的是要注意 ,后面的100個條目並不總是像提供的示例行那樣進行排序(即,第一個條目可以是任何數字0-4,第二個條目將根據第一個條目而變化)

嘗試此解決方案以獲得您期望的答案。

column = [100, 0, 0, 100, 1, 0, 100, 2, 0, 100, 3, 0, 100, 4, 0]
data = [num for num in column if num != 100] 
info_dict1 = {0: 'absolute', 1: 'minimum', 2: 'maximum', 3: 'median', 
4: 'mode'}
info_dict2 = {'absolute': 'value', 'minimum': 'increase', 'maximum': 
'increase'}
info1 = []

#Iterating the list in step of 2
for item in data[::2]:
    result = info_dict1.get(item, 'not found')
    info1.append(result)
    info1.append(info_dict2.get(result, 'not found'))

print(info1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM