我有三個存盤 str 值的變數。例子:
dataTOcompare[dataTOcompare_index][0] = 'header1 : Subject', 'header2 :Text'
dataTOcompare[dataTOcompare_index][1] = 'condition1 : Equal', 'condition2: Contain '
dataTOcompare[dataTOcompare_index][2] = 'parameter1: hi1', 'parameter2: hi2'
我試圖實作的目標:
我希望它將每個索引 1,2,3 與三個不同的 str 配對。例如,header1,condition1, parameter1應該是一個資料,例如。
預期輸出:
header1, condition1, parameter1 = Subject Equal hi1
header2, condition2, parameter2 = Text Contain hi2
uj5u.com熱心網友回復:
您必須在 處拆分包含鍵值對的字串:,然后獲取第二個值,即鍵值對的值,去掉空格,然后將它們添加到元組中。使用zip()您可以同時迭代多個可迭代物件。
input_header = 'header1 : Subject', 'header2 :Text'
input_conditions = 'condition1 : Equal', 'condition2: Contain '
input_parameters = 'parameter1: hi1', 'parameter2: hi2'
def getValue(string):
return string.split(":")[1].strip()
result = [(getValue(header), getValue(condition), getValue(parameter)) for header, condition, parameter in
zip(input_header, input_conditions, input_parameters)]
print(result)
預期輸出:
[('Subject', 'Equal', 'hi1'), ('Text', 'Contain', 'hi2')]
你的輸入雖然看起來很奇怪。因此,如果您可以控制它,只需使用簡單的陣列即可。您作為字串的鍵值對不是必需的,因為鍵不代表有意義的東西,即使它只是一個字串而不是您可以使用該鍵輕松訪問的字典。您可以改用陣列來實作您想要做的同樣的事情。
headers = ["Subject", "Text"]
conditions = ["Equal", "Contain"]
parameters = ["hi1", "hi2"]
result = list(zip(headers, conditions, parameters))
print(result)
這將產生與您在上面所做的相同的輸出。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/455732.html
