【发布时间】:2018-08-07 05:11:57
【问题描述】:
我有一些 DB data1,当 fetchall 看起来像这样..
{u'name': 'abcd', u'id': 3}
{u'name': 'efg', u'id': 5}
{u'name': 'xyz', u'id': 6}
我还有另一个 data2,不是来自 DB。
它看起来像set(['abc', 'abdc', 'bcd'])
我想查找 data2 是否存在于 data1 的名称中,如果存在则返回 u'id'number
有没有办法在 Python 中查找?就像使用 c++ std::map ...类似下面的东西
map<string,int> data1
list<string> data2
map<string,int>::iterator it = data1.find(data2.front());
if (it != data1.end()) {
std::cout << it->second <<\n;
}
下面是我的python代码
data1 = connect()
data2 = set([])
namelist = set(['abc', 'abdc', 'bcd'])
for row in data1:
data2.add(row['name'])
find = set([])
find = data2.intersection(data2)
print(find)
# want to print id value
【问题讨论】:
-
你似乎在任何地方都没有元组;只有一个字典和一个集合。
-
到目前为止你尝试过什么?请发布您的代码。
-
我认为你有更多
vector <map<string,int>>而不是map<string, int>(只是猜测 C++ 类型)......所以不清楚你在处理什么,因为你的 python 示例是'不是一个有效的 Python 文字,但我只能假设它是上下文中的字典列表。 -
我编辑了我的帖子,添加了我的python代码
标签: python dictionary set