我有一个源自.csv的城市字典。我试图让用户搜索城市,并让我的程序返回该城市的数据。但是,我不理解如何编写一个遍历字典的“ for”循环。有什么建议吗?
代码:
import csv
#Step 4. Allow user to input a city and year
myCity = input('Pick a city: ')
myYear = ('yr'+(input('Choose a year you\'re interested in: ')))
#Step 1. Import and read CityPop.csv
with open(r'C:\Users\Megan\Desktop\G378_lab3\CityPop.csv') as csv_file:
reader = csv.DictReader(csv_file)
#Step 2. Build dictionary to store .csv data
worldCities = {}
#Step 3. Use field names from .csv to create key and access attribute values
for row in reader:
worldCities[row['city']] = dict(row)
#Step 5. Search dictionary for matching values
for row in worldCities:
if dict(row[4]) == myCity:
pass
else:
print('City not found.')
print (row)
答案 0 :(得分:1)
if myCity in worldCities:
print (worldCities[myCity])
else:
print('City not found.')
如果只想打印找到的值或“找不到城市”。如果没有相应的值,则可以使用更短的代码
print (worldCities.get(myCity,'City not found.'))
字典对象的get方法将返回与传入键(第一个参数)相对应的值,如果该键不存在,它将返回默认值,该默认值是get方法的第二个参数。如果未传递默认值,则返回NoneType对象
答案 1 :(得分:0)
字典是键-值对的集合。例如:
Let's create a dictionary with city - state pairs.
cities = {"New York City":"NY", "San Jose":"CA"}
In this dict, we have Key's as City and Values as their respective states. To iterate over this dict you can write a for loop like this:
for city, states in cities.items():
print(city, states)
> "New York", "NY"
"San Jose", "CA"
For your example:
for key, value in worldCities.items():
if key == "something":
"then do something"
else:
"do something else"