Python:如何搜索字典和复制值?
我是一个新手用户。我有两个字典(“行”和“数据”) 我想搜索“行”,当我发现“long”和“lat”的值与“clong”和“clat”的值一致时,我想将“created_at”键从“行”复制到“数据”中Python:如何搜索字典和复制值?,python,for-loop,dictionary,Python,For Loop,Dictionary,我是一个新手用户。我有两个字典(“行”和“数据”) 我想搜索“行”,当我发现“long”和“lat”的值与“clong”和“clat”的值一致时,我想将“created_at”键从“行”复制到“数据”中 不幸的是,上面的代码不起作用,我被卡住了。任何帮助都将不胜感激 有很多方法可以做到这一点。最直接(尽管效率较低)的方法可能是迭代行和数据,如果存在长和纬度键的匹配,则将当前行的时间键添加到数据的i第个元素 或者举个例子 rows = [ {'long':1, 'lat':4, 'time
不幸的是,上面的代码不起作用,我被卡住了。任何帮助都将不胜感激 有很多方法可以做到这一点。最直接(尽管效率较低)的方法可能是迭代
行
和数据
,如果存在长
和纬度
键的匹配,则将当前行
的时间
键添加到数据
的i
第个元素
或者举个例子
rows = [
{'long':1, 'lat':4, 'time': '7:00'},
{'long':2, 'lat':5, 'time': '8:00'},
{'long':3, 'lat':6, 'time': '9:00'}
]
data = [
{'long':1, 'lat':4, },
{'long':20, 'lat':5, },
{'long':3, 'lat':6, }
]
for row in rows:
for i, d in enumerate(data):
if row['long'] == d['long'] and row['lat'] == d['lat']:
data[i]['time'] = row['time']
for x in data:
print x
输出
{'lat': 4, 'long': 1, 'time': '7:00'}
{'lat': 5, 'long': 20}
{'lat': 6, 'long': 3, 'time': '9:00'}
请注意,第二个元素没有获得
时间
键,因为lat
/long
不匹配。行
和数据
可能不是真正的dicts。[0]
确实可疑。行
和数据
看起来像DICT列表(因为您正在访问行[0]
和列表[0]
)。另外,键
变量从未在循环中使用过,因此每次似乎都在访问第一个条目。我认为它们是DICT列表?“寻求调试帮助的问题”(“为什么此代码不起作用?”)必须包括所需的行为、特定的问题或错误以及在问题本身中重现问题所需的最短代码。没有明确问题说明的问题对其他读者没有用处。”“上述代码不起作用”不是充分的问题说明,无论是谁投了反对票,我都欢迎建设性的批评。有什么问题吗?还是应该改变什么?
rows = [
{'long':1, 'lat':4, 'time': '7:00'},
{'long':2, 'lat':5, 'time': '8:00'},
{'long':3, 'lat':6, 'time': '9:00'}
]
data = [
{'long':1, 'lat':4, },
{'long':20, 'lat':5, },
{'long':3, 'lat':6, }
]
for row in rows:
for i, d in enumerate(data):
if row['long'] == d['long'] and row['lat'] == d['lat']:
data[i]['time'] = row['time']
for x in data:
print x
{'lat': 4, 'long': 1, 'time': '7:00'}
{'lat': 5, 'long': 20}
{'lat': 6, 'long': 3, 'time': '9:00'}