我正在嘗試運行此命令,但每次運行此命令時都需要插入新的兩個變數。我認為正確的方法是遍歷字典并在每個回圈中添加兩個變數。我從來沒有遍歷每個鍵有多個值的字典。讓我知道是否還有其他方法可以考慮。
sample_dict = {key0: ['source0','parameter0'],
key1: ['source1','parameter1'],
key2: ['source2','parameter2'],
key3: ['source3','parameter3']}
for values in sample_dict:
example_cmd = "set -a; source ~/.bash_profile; python3 $path/file.py \
--dbtype db --config-dir $CONFIG_DIR \
--db-conn-config-file db.conf \
--sqlfile $path/{source} \
--params {parameter}"
example_cmd
uj5u.com熱心網友回復:
我不確定您想要實作什么,但是以您所做的方式遍歷字典實際上會遍歷鍵,而不是值。要僅迭代值,您可以使用:
for value in sample_dict.values():
...
要成對迭代兩者,請使用:
for key, value in sample_dict.items():
...
在您的具體情況下,您可以執行以下操作:
for source, parameter in sample_dict.values():
...
這將僅遍歷值(在您的情況下為串列)并將每個串列擴展為sourceandparameter變數,因為每個串列恰好有兩個元素。您必須小心不要在字典中的每個串列中包含少于 2 個專案,否則會導致運行時錯誤。
另外,請注意values()和items()方法都回傳一個迭代器(生成器),而不是一個串列。
uj5u.com熱心網友回復:
您正在遍歷鍵,而不是值。您需要遍歷sample_dict.values().
然后您可以使用擴展賦值將source和parameter變數設定為每個串列的兩個元素。
如果要替換變數,{variable}則需要使用 f 字串。
for source, parameter in sample_dict.values():
example_cmd = f"set -a; source ~/.bash_profile; python3 $path/file.py \
--dbtype db --config-dir $CONFIG_DIR \
--db-conn-config-file db.conf \
--sqlfile $path/{source} \
--params {parameter}"
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/476903.html
標籤:Python python-3.x 字典 for循环
