在 python 3 中遍历字典时如何使用字符串插值?
How can I use string interpolation while iterating over a dictionary in python 3?
我有一本字典,里面全是州和他们的缩写映射到他们的真实姓名。我想遍历它们,因为我想让任务更容易(不想为每个状态都写出来)。到目前为止我有这样的字典
state_dict = {
'AK': 'ALASKA',
'AL': 'ALABAMA',
'AR': 'ARKANSAS',
'AS': 'AMERICAN SAMOA',
'AZ': 'ARIZONA ',
'CA': 'CALIFORNIA ',
'CO': 'COLORADO ',
'CT': 'CONNECTICUT',
'DC': 'DISTRICT OF COLUMBIA',
'DE': 'DELAWARE',
'FL': 'FLORIDA',
'FM': 'FEDERATED STATES OF MICRONESIA',
'GA': 'GEORGIA',
'GU': 'GUAM ',
'HI': 'HAWAII',
'IA': 'IOWA',
'ID': 'IDAHO',
'IL': 'ILLINOIS',
'IN': 'INDIANA',
'KS': 'KANSAS',
'KY': 'KENTUCKY',
'LA': 'LOUISIANA',
'MA': 'MASSACHUSETTS',
'MD': 'MARYLAND',
'ME': 'MAINE',
'MH': 'MARSHALL ISLANDS',
'MI': 'MICHIGAN',
'MN': 'MINNESOTA',
'MO': 'MISSOURI',
'MP': 'NORTHERN MARIANA ISLANDS',
'MS': 'MISSISSIPPI',
'MT': 'MONTANA',
'NC': 'NORTH CAROLINA',
'ND': 'NORTH DAKOTA',
'NE': 'NEBRASKA',
'NH': 'NEW HAMPSHIRE',
'NJ': 'NEW JERSEY',
'NM': 'NEW MEXICO',
'NV': 'NEVADA',
'NY': 'NEW YORK',
'OH': 'OHIO',
'OK': 'OKLAHOMA',
'OR': 'OREGON',
'PA': 'PENNSYLVANIA',
'PR': 'PUERTO RICO',
'RI': 'RHODE ISLAND',
'SC': 'SOUTH CAROLINA',
'SD': 'SOUTH DAKOTA',
'TN': 'TENNESSEE',
'TX': 'TEXAS',
'UT': 'UTAH',
'VA': 'VIRGINIA ',
'VI': 'VIRGIN ISLANDS',
'VT': 'VERMONT',
'WA': 'WASHINGTON',
'WI': 'WISCONSIN',
'WV': 'WEST VIRGINIA',
'WY': 'WYOMING'
}
for k, v in state_dict.items():
print("""if (c_state_code.equals("{k}"))
{
out_state_code = "{v}";
}""").format(k, v)
但是我得到 'NoneType' object has no attribute 'format,我什至在 .format 中尝试了 **attrs 但得到了同样的错误。
您在 print()
的结果上调用 format()
,return 没有任何结果。它应该在格式字符串上调用——它需要在 print()
.
的参数内
for k, v in state_dict.items():
print("""if (c_state_code.equals("{k}"))
{{
out_state_code = "{v}";
}}""".format(k, v))
如果您使用的是 Python 3.6 版,您可以使用 f 弦使其更容易。
for k, v in state_dict.items():
print(f"""if (c_state_code.equals("{k}"))
{{
out_state_code = "{v}";
}}""")
如果你要用这个代码,我觉得挺好的。但是,看起来您正在尝试复制和粘贴一百万个不同的 if 语句以将州的首字母转换为州名称。在这种情况下,我会使用字典(或者甚至将其存储在 JSON
文件中!)
state_dict = {...}
out_state_code = state_dict[c_state_code]
或
import json
with open("states.json", "r") as states_file:
state_dict = json.load(states_file)
out_state_code = state_dict[c_state_code]
我有一本字典,里面全是州和他们的缩写映射到他们的真实姓名。我想遍历它们,因为我想让任务更容易(不想为每个状态都写出来)。到目前为止我有这样的字典
state_dict = {
'AK': 'ALASKA',
'AL': 'ALABAMA',
'AR': 'ARKANSAS',
'AS': 'AMERICAN SAMOA',
'AZ': 'ARIZONA ',
'CA': 'CALIFORNIA ',
'CO': 'COLORADO ',
'CT': 'CONNECTICUT',
'DC': 'DISTRICT OF COLUMBIA',
'DE': 'DELAWARE',
'FL': 'FLORIDA',
'FM': 'FEDERATED STATES OF MICRONESIA',
'GA': 'GEORGIA',
'GU': 'GUAM ',
'HI': 'HAWAII',
'IA': 'IOWA',
'ID': 'IDAHO',
'IL': 'ILLINOIS',
'IN': 'INDIANA',
'KS': 'KANSAS',
'KY': 'KENTUCKY',
'LA': 'LOUISIANA',
'MA': 'MASSACHUSETTS',
'MD': 'MARYLAND',
'ME': 'MAINE',
'MH': 'MARSHALL ISLANDS',
'MI': 'MICHIGAN',
'MN': 'MINNESOTA',
'MO': 'MISSOURI',
'MP': 'NORTHERN MARIANA ISLANDS',
'MS': 'MISSISSIPPI',
'MT': 'MONTANA',
'NC': 'NORTH CAROLINA',
'ND': 'NORTH DAKOTA',
'NE': 'NEBRASKA',
'NH': 'NEW HAMPSHIRE',
'NJ': 'NEW JERSEY',
'NM': 'NEW MEXICO',
'NV': 'NEVADA',
'NY': 'NEW YORK',
'OH': 'OHIO',
'OK': 'OKLAHOMA',
'OR': 'OREGON',
'PA': 'PENNSYLVANIA',
'PR': 'PUERTO RICO',
'RI': 'RHODE ISLAND',
'SC': 'SOUTH CAROLINA',
'SD': 'SOUTH DAKOTA',
'TN': 'TENNESSEE',
'TX': 'TEXAS',
'UT': 'UTAH',
'VA': 'VIRGINIA ',
'VI': 'VIRGIN ISLANDS',
'VT': 'VERMONT',
'WA': 'WASHINGTON',
'WI': 'WISCONSIN',
'WV': 'WEST VIRGINIA',
'WY': 'WYOMING'
}
for k, v in state_dict.items():
print("""if (c_state_code.equals("{k}"))
{
out_state_code = "{v}";
}""").format(k, v)
但是我得到 'NoneType' object has no attribute 'format,我什至在 .format 中尝试了 **attrs 但得到了同样的错误。
您在 print()
的结果上调用 format()
,return 没有任何结果。它应该在格式字符串上调用——它需要在 print()
.
for k, v in state_dict.items():
print("""if (c_state_code.equals("{k}"))
{{
out_state_code = "{v}";
}}""".format(k, v))
如果您使用的是 Python 3.6 版,您可以使用 f 弦使其更容易。
for k, v in state_dict.items():
print(f"""if (c_state_code.equals("{k}"))
{{
out_state_code = "{v}";
}}""")
如果你要用这个代码,我觉得JSON
文件中!)
state_dict = {...}
out_state_code = state_dict[c_state_code]
或
import json
with open("states.json", "r") as states_file:
state_dict = json.load(states_file)
out_state_code = state_dict[c_state_code]