python 提取 id= 1.3e+02,将id 和数字输出,求助大神这是什么歌6

Python 中的 is 和 id - 文章 - 伯乐在线
& Python 中的 is 和 id
的私信投稿。如果其他朋友也有不错的原创或译文,可以尝试。】
(ob1 is ob2) 等价于 (id(ob1) == id(ob2))
首先id函数可以获得对象的内存地址,如果两个对象的内存地址是一样的,那么这两个对象肯定是一个对象。和is是等价的。Python源代码为证。
static PyObject *
cmp_outcome(int op, register PyObject *v, register PyObject *w)
int res = 0;
switch (op) {
case PyCmp_IS:
res = (v == w);
case PyCmp_IS_NOT:
res = (v != w);
1234567891011
static PyObject * cmp_outcome(int op, register PyObject *v, register PyObject *w){ int res = 0; switch (op) { case PyCmp_IS:&&res = (v == w); break; case PyCmp_IS_NOT:res = (v != w); break;
但是请看下边代码的这种情况怎么会出现呢?
In [1]: def bar(self, x):
return self.x + y
In [2]: class Foo(object):
def __init__(self ,x):
self.x = x
In [3]: foo = Foo(5)
In [4]: foo.bar is Foo.bar
Out[4]: False
In [5]: id(foo.bar) == id(Foo.bar)
Out[5]: True
123456789101112131415161718
In [1]: def bar(self, x):...:&&&& return self.x + y...: &In [2]: class Foo(object):...:&&&& x = 9...:&&&& def __init__(self ,x):...:&&&&&&&& self.x = x...:&&&& bar = bar...:&&&& &In [3]: foo = Foo(5)&In [4]: foo.bar is Foo.barOut[4]: False&In [5]: id(foo.bar) == id(Foo.bar)Out[5]: True
两个对象用is判断是False,用id判断却是True,这与我们已知的事实不符啊,这种现象该如何解释呢?遇到这种情况最好的解决方法就是调用dis模块去看下两个比较语句到底做了什么。
In [7]: dis.dis("id(foo.bar) == id(Foo.bar)")
0 BUILD_MAP
3 BUILD_TUPLE
7 DELETE_GLOBAL
10 STORE_SLICE+1
11 SLICE+2
12 DELETE_SUBSCR
13 DELETE_SUBSCR
14 SLICE+2
15 BUILD_MAP
18 PRINT_EXPR
19 JUMP_IF_FALSE_OR_POP 11887
22 DELETE_GLOBAL
25 STORE_SLICE+1
In [8]: dis.dis("foo.bar is Foo.bar")
0 BUILD_TUPLE
4 DELETE_GLOBAL
8 BUILD_MAP
11 PRINT_EXPR
12 JUMP_IF_FALSE_OR_POP 11887
15 DELETE_GLOBAL
<div class="crayon-num" data-line="crayon-579eb<div class="crayon-num crayon-striped-num" data-line="crayon-579eb<div class="crayon-num" data-line="crayon-579eb<div class="crayon-num crayon-striped-num" data-line="crayon-579eb<div class="crayon-num" data-line="crayon-579eb<div class="crayon-num crayon-striped-num" data-line="crayon-579eb<div class="crayon-num" data-line="crayon-579eb<div class="crayon-num crayon-striped-num" data-line="crayon-579eb<div class="crayon-num" data-line="crayon-579eb<div class="crayon-num crayon-striped-num" data-line="crayon-579eb<div class="crayon-num" data-line="crayon-579eb<div class="crayon-num crayon-striped-num" data-line="crayon-579eb<div class="crayon-num" data-line="crayon-579eb<div class="crayon-num crayon-striped-num" data-line="crayon-579eb<div class="crayon-num" data-line="crayon-579eb<div class="crayon-num crayon-striped-num" data-line="crayon-579eb<div class="crayon-num" data-line="crayon-579eb<div class="crayon-num crayon-striped-num" data-line="crayon-579eb<div class="crayon-num" data-line="crayon-579eb<div class="crayon-num crayon-striped-num" data-line="crayon-579eb<div class="crayon-num" data-line="crayon-579eb<div class="crayon-num crayon-striped-num" data-line="crayon-579eb<div class="crayon-num" data-line="crayon-579eb<div class="crayon-num crayon-striped-num" data-line="crayon-579eb<div class="crayon-num" data-line="crayon-579eb
In [7]: dis.dis("id(foo.bar) == id(Foo.bar)")&&&&&&&&&&0 BUILD_MAP&&&&&& 10340&&&&&&&&&&3 BUILD_TUPLE&&&& 28527&&&&&&&&&&6 &46&&&&&&&&&&& &&&&&&&&&&7 DELETE_GLOBAL&& 29281 (29281)&&&&&&&& 10 STORE_SLICE+1&&&&&&&&&& 11 SLICE+2&&&&&&&&&&&&&&&& 12 DELETE_SUBSCR&&&&&&&&&& 13 DELETE_SUBSCR&&&&&&&&&& 14 SLICE+2&&&&&&&&&&&&&&&& 15 BUILD_MAP&&&&&& 10340&&&&&&&& 18 PRINT_EXPR&&&& &&&&&&&& 19 JUMP_IF_FALSE_OR_POP 11887&&&&&&&& 22 DELETE_GLOBAL&& 29281 (29281)&&&&&&&& 25 STORE_SLICE+1&&&In [8]: dis.dis("foo.bar is Foo.bar")&&&&&&&&&&0 BUILD_TUPLE&&&& 28527&&&&&&&&&&3 &46&&&&&&&&&&& &&&&&&&&&&4 DELETE_GLOBAL&& 29281 (29281)&&&&&&&&&&7 SLICE+2&&&&&&&&&&&&&&&&&&8 BUILD_MAP&&&&&&&&8307&&&&&&&& 11 PRINT_EXPR&&&& &&&&&&&& 12 JUMP_IF_FALSE_OR_POP 11887&&&&&&&& 15 DELETE_GLOBAL&& 29281 (29281)
真实情况是当执行.操作符的时候,实际是生成了一个proxy对象,foo.bar is Foo.bar的时候,两个对象顺序生成,放在栈里相比较,由于地址不同肯定是False,但是id(foo.bar) == id(Foo.bar)的时候就不同了,首先生成foo.bar,然后计算foo.bar的地址,计算完之后foo.bar的地址之后,就没有任何对象指向foo.bar了,所以foo.bar对象就会被释放。然后生成Foo.bar对象,由于foo.bar和Foo.bar所占用的内存大小是一样的,所以又恰好重用了原先foo.bar的内存地址,所以id(foo.bar) == id(Foo.bar)的结果是True。
下面内容由邮件Leo Jay大牛提供,他解释的更加通透。
用id(expression a) == id(expression b)来判断两个表达式的结果是不是同一个对象的想法是有问题的。
foo.bar 这种形式叫 attribute reference [1],它是表达式的一种。foo是一个instance object,bar是一个方法,这个时候表达式foo.bar返回的结果叫method object [2]。根据文档:
When an instance attribute is referenced that isn’t a data attribute,
its class is searched. If the name denotes a valid class attribute
that is a function object, a method object is created by packing
(pointers to) the instance object and the function object just found
together in an abstract object: this is the method object.
<div class="crayon-num" data-line="crayon-579eb<div class="crayon-num crayon-striped-num" data-line="crayon-579eb<div class="crayon-num" data-line="crayon-579eb<div class="crayon-num crayon-striped-num" data-line="crayon-579eb<div class="crayon-num" data-line="crayon-579eb
When an instance attribute is referenced that isn’t a data attribute, its class is searched. If the name denotes a valid class attribute that is a function object, a method object is created by packing (pointers to) the instance object and the function object just found together in an abstract object: this is the method object.
foo.bar本身并不是简单的名字,而是表达式的计算结果,是一个 method object,在id(foo.bar)这样的表达式里,method object只是一个临时的中间变量而已,对临时的中间变量做id是没有意义的。
一个更明显的例子是,
print id(foo.bar) == id(foo.__init__)
<div class="crayon-num" data-line="crayon-579eb
print id(foo.bar) == id(foo.__init__)
输出的结果也是True
看 id 的文档[3]:
Return the “identity” of an object. This is an integer (or long
integer) which is guaranteed to be unique and constant for this object
during its lifetime. Two objects with non-overlapping lifetimes may
have the same id() value.
CPython implementation detail: This is the address of the object in memory.
Return the “identity” of an object. This is an integer (or long integer) which is guaranteed to be unique and constant for this object during its lifetime. Two objects with non-overlapping lifetimes may have the same id() value. CPython implementation detail: This is the address of the object in memory.
只有你能保证对象不会被销毁的前提下,你才能用 id 来比较两个对象。所以,如果你非要比的话,得这样写:
fb = foo.bar
Fb = Foo.bar
print id(fb) == id(Fb)
fb = foo.bar Fb = Foo.bar print id(fb) == id(Fb)
即把两个表达式的结果绑定到名字上,再来比是不是同一个对象,你才能得到正确的结果。
is表达式 [4] 也是一样的,你现在得到了正确的结果,完全是因为 CPython 现在的实现细节决定的。现在的is的实现,是左右两边的对象都计算出来,然后再比较这两个对象的地址是否一样。万一哪天改成了,先算左边,保存地址,把左边释放掉,再算右边,再比较的话,你的is的结果可能就错了。官方文档里也提到了这个问题 [5]。我认为正确的方法也是像id那样,先把左右两边都计算下来,并显式绑定到各自的名字上,然后再用is判断。
关于作者:
可能感兴趣的话题
“method object,在id(foo.bar)这样的表达式里,method object只是一个临时的中间变量而已,”学习了
关于伯乐在线博客
在这个信息爆炸的时代,人们已然被大量、快速并且简短的信息所包围。然而,我们相信:过多“快餐”式的阅读只会令人“虚胖”,缺乏实质的内涵。伯乐在线内容团队正试图以我们微薄的力量,把优秀的原创文章和译文分享给读者,为“快餐”添加一些“营养”元素。
新浪微博:
推荐微信号
(加好友请注明来意)
&#8211; 好的话题、有启发的回复、值得信赖的圈子
&#8211; 分享和发现有价值的内容与观点
&#8211; 为IT单身男女服务的征婚传播平台
&#8211; 优秀的工具资源导航
&#8211; 翻译传播优秀的外文文章
&#8211; 国内外的精选文章
&#8211; UI,网页,交互和用户体验
&#8211; 专注iOS技术分享
&#8211; 专注Android技术分享
&#8211; JavaScript, HTML5, CSS
&#8211; 专注Java技术分享
&#8211; 专注Python技术分享
& 2016 伯乐在线5509人阅读
python(62)
http://blog.csdn.net/nwpulei/article/details/7272832
python提供了SGMLParser类用于html文件的解析。用户只需从SGMLParser类继承子类,并在子类中对html文件做具体处理。
例如 具有如下结构的html文件
&class='entry-content'&&感兴趣内容1&&感兴趣内容2&&……&&感兴趣内容n&&&&&class='content'&&内容1&&内容2&&……&&内容n&&&&
我们尝试获得'感兴趣内容'
对于文本内容,我们保存到IDList中。
可是如何标记我们遇到的文本是感兴趣的内容呢,也就是,处于
&class='entry-content'&&这里的内容&&还有这里&&……&&以及这里的内容&&&&
遇到&div class='entry-content'& 设置标记flag = True遇到&/div&后 设置标记flag = False当flag 为True时遇到&p& 设置标记getdata = True遇到&/p& 且getdata = True,设置getdata = False
python为我们提供了SGMLParser类,SGMLParser 将 HTML 分析成 8 类数据[1],然后对每一类调用单独的方法:使用时只需继承SGMLParser 类,并编写页面信息的处理函数。
可用的处理函数如下:
开始标记 (Start tag)&
是一个开始一个块的 HTML 标记,象 &html&,&head&,&body& 或 &pre& 等,或是一个独一的标记,象 &br& 或 &img& 等。当它找到一个开始标记 tagname,SGMLParser 将查找名为&start_tagname&或&do_tagname&的方法。例如,当它找到一个 &pre& 标记,它将查找一个 start_pre 或 do_pre 的方法。如果找到了,SGMLParser
会使用这个标记的属性列表来调用这个方法;否则,它用这个标记的名字和属性列表来调用&unknown_starttag&方法。&
结束标记 (End tag)&
是结束一个块的 HTML 标记,象 &/html&,&/head&,&/body& 或 &/pre& 等。当找到一个结束标记时,SGMLParser 将查找名为&end_tagname&的方法。如果找到,SGMLParser 调用这个方法,否则它使用标记的名字来调用&unknown_endtag&。&
字符引用 (Character reference)&
用字符的十进制或等同的十六进制来表示的转义字符,象 &#160;。当找到,SGMLParser 使用十进制或等同的十六进制字符文本来调用&handle_charref&。&
实体引用 (Entity reference)&
HTML 实体,象 &。当找到,SGMLParser 使用 HTML 实体的名字来调用&handle_entityref&。&
注释 (Comment)&
HTML 注释, 包括在 &!-- ... --&之间。当找到,SGMLParser 用注释内容来调用&handle_comment。&
处理指令 (Processing instruction)&
HTML 处理指令,包括在 &? ... & 之间。当找到,SGMLParser 用处理指令内容来调用&handle_pi。&
声明 (Declaration)&
HTML 声明,如 DOCTYPE,包括在 &! ... &之间。当找到,SGMLParser 用声明内容来调用&handle_decl。&
文本数据 (Text data)&
文本块。不满足其它 7 种类别的任何东西。当找到,SGMLParser 用文本来调用&handle_data。&
综上,的到如下代码
from&sgmllib&import&SGMLParser&&class&GetIdList(SGMLParser):&&&&&&def&reset(self):&&&&&&&&&&self.IDlist&=&[]&&&&&&&&&&self.flag&=&False&&&&&&&&&&self.getdata&=&False&&&&&&&&&&SGMLParser.reset(self)&&&&&&&&&&&&&&&&def&start_div(self,&attrs):&&&&&&&&&&for&k,v&in&attrs:&&&&&&&&&&&&&&if&k&==&'class'&and&v&==&'entry-content':&&&&&&&&&&&&&&&&&&self.flag&=&True&&&&&&&&&&&&&&&&&&return&&&&&&&&def&end_div(self):&&&&&&self.flag&=&False&&&&&&&&&&&&&&&&&&&&def&start_p(self,&attrs):&&&&&&&&&&if&self.flag&==&False:&&&&&&&&&&&&&&return&&&&&&&&&&self.getdata&=&True&&
def&end_p(self):&&&&&&if&self.getdata:&&&&&&&&&&self.getdata&=&False&&&&def&handle_data(self,&text):&&&&&&if&self.getdata:&&&&&&&&&&self.IDlist.append(text)&&
def&printID(self):&&&&&&for&i&in&self.IDlist:&&&&&&&&&&print&i&&
上面的思路存在一个bug
遇到&/div&后 设置标记flag = False
如果遇到div嵌套怎么办?
&class='entry-content'我是来捣乱的感兴趣&&
在遇到第一个&/div&之后标记flag = False,导致无法的到‘感兴趣内容’。
怎么办呢?如何判断遇到的&/div&是和&div class='entry-content'&匹配的哪个呢?
很简单,&/div&和&div&是对应的,我们可以记录他所处的层数。进入子层div verbatim加1,退出子层div &verbatim减1.这样就可以判断是否是同一层了。
修改后&如下
from&sgmllib&import&SGMLParser&&class&GetIdList(SGMLParser):&&&&&&def&reset(self):&&&&&&&&&&self.IDlist&=&[]&&&&&&&&&&self.flag&=&False&&&&&&&&&&self.getdata&=&False&&&&&&&&&&self.verbatim&=&0&&&&&&&&&&SGMLParser.reset(self)&&&&&&&&&&&&&&&&def&start_div(self,&attrs):&&&&&&&&&&if&self.flag&==&True:&&&&&&&&&&&&&&self.verbatim&&#43;=1&&&&&&&&&&&&&&&return&&&&&&&&&&for&k,v&in&attrs:&&&&&&&&&&&&&&if&k&==&'class'&and&v&==&'entry-content':&&&&&&&&&&&&&&&&&&self.flag&=&True&&&&&&&&&&&&&&&&&&return&&&&&&&&def&end_div(self):&&&&&&&&&&if&self.verbatim&==&0:&&&&&&&&&&&&&&self.flag&=&False&&&&&&&&&&if&self.flag&==&True:&&&&&&&&&&&&&&self.verbatim&-=1&&&&&&&&def&start_p(self,&attrs):&&&&&&&&&&if&self.flag&==&False:&&&&&&&&&&&&&&return&&&&&&&&&&self.getdata&=&True&&&&&&&&&&&&&&&&def&end_p(self):&&&&&&&&&&if&self.getdata:&&&&&&&&&&&&&&self.getdata&=&False&&&&&&&&def&handle_data(self,&text):&&&&&&&&&&if&self.getdata:&&&&&&&&&&&&&&self.IDlist.append(text)&&&&&&&&&&&&&&&&&&&&def&printID(self):&&&&&&&&&&for&i&in&self.IDlist:&&&&&&&&&&&&&&print&i&&
最后&&建立了我们自己的类GetIdList后如何使用呢?
简单建立实例 t = GetIdList()
the_page为字符串,内容为html
t.feed(the_page)#对html解析
t.printID()打印出结果
全部测试代码为
from&sgmllib&import&SGMLParser&&class&GetIdList(SGMLParser):&&&&&&def&reset(self):&&&&&&&&&&self.IDlist&=&[]&&&&&&&&&&self.flag&=&False&&&&&&&&&&self.getdata&=&False&&&&&&&&&&self.verbatim&=&0&&&&&&&&&&SGMLParser.reset(self)&&&&&&&&&&&&&&&&def&start_div(self,&attrs):&&&&&&&&&&if&self.flag&==&True:&&&&&&&&&&&&&&self.verbatim&&#43;=1&&&&&&&&&&&&&&&return&&&&&&&&&&for&k,v&in&attrs:&&&&&&&&&&&&&&if&k&==&'class'&and&v&==&'entry-content':&&&&&&&&&&&&&&&&&&self.flag&=&True&&&&&&&&&&&&&&&&&&return&&&&&&&&def&end_div(self):&&&&&&&&&&if&self.verbatim&==&0:&&&&&&&&&&&&&&self.flag&=&False&&&&&&&&&&if&self.flag&==&True:&&&&&&&&&&&&&&self.verbatim&-=1&&&&&&&&def&start_p(self,&attrs):&&&&&&&&&&if&self.flag&==&False:&&&&&&&&&&&&&&return&&&&&&&&&&self.getdata&=&True&&&&&&&&&&&&&&&&def&end_p(self):&&&&&&&&&&if&self.getdata:&&&&&&&&&&&&&&self.getdata&=&False&&&&&&&&def&handle_data(self,&text):&&&&&&&&&&if&self.getdata:&&&&&&&&&&&&&&self.IDlist.append(text)&&&&&&&&&&&&&&&&&&&&def&printID(self):&&&&&&&&&&for&i&in&self.IDlist:&&&&&&&&&&&&&&print&i&&&&&&&&&&&&&&&&&&&&&&the_page&=''&&&&&&&&&&&&&&&&&&&&&&&&lister&=&GetIdList()&&lister.feed(the_page)&&lister.printID()&&
执行后 输出为
感兴趣内容1&&感兴趣内容2&&感兴趣内容n&&
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:466630次
积分:5684
积分:5684
排名:第3012名
原创:33篇
转载:544篇
评论:13条
(5)(1)(3)(14)(26)(22)(43)(17)(31)(19)(17)(10)(36)(26)(46)(25)(15)(5)(4)(4)(1)(3)(3)(1)(2)(2)(1)(2)(8)(5)(5)(12)(4)(9)(17)(25)(1)(13)(2)(1)(1)(2)(1)(1)(5)(1)(15)(4)(1)(3)(3)(2)(1)(1)(4)(1)(1)(1)(2)(6)(12)(5)(4)(3)(2)(2)(1)(10)(1)python列表和字典处理_百度知道
python列表和字典处理
&#92;Fitemid_id&#39;;;Fitemid_id&#39;Fcontent&#39;: &#39, {&#39;
{&#39:&#39;:29;;, &#39;Fcontent&#39: &#39;sssss&#39, &#39;
{&#39;f&#39: &#39: &#39, {&#39: &#39;;Fparam&#39;Fitemid_id&#39;Fitemid_id&#39;: &#39,Fparam作为字典的键;test&#39;: &#39;Fitemid_id&#39;;: &#39;adfa&#39;;22&#39;222&#39;b3&#39, &#39;Fitemid_id&#39, &#39: &#39;Fparam&#39;;;: &#39: &#39;Fcontent&#39;;},Fcontent是值;fASFDS&#39;;;;, &#39: &#39;Fitemid_id&#39;Fcontent&#39, &#39: 比较它们Fitemid_22&#39: &#39;asdf&#39;;};;}: &#39;abc&#39;;adfa&#39;;: &#39: &#39: &#39;;16&#39;Fparam&#39;29&#39;;Fcontent&#39;Fparam&#39, &#39;asdf&#39, &#39;29&#39;: &#39,相同的话则把Fcontent和Fparam提取出来, {&#39;f&#39: &#39, &#39;Fparam&#39,如{&#39: &#39, &#39;3334&#39, &#39;Fparam&#39;Fparam&#39;Fparam&#39, &#39;
{&#39;}, &#39;;, &#39;Fparam&#39;:&#39, &#92;;Fitemid_id&#39;;;c&#39;}]for i in range(len(items));Fitemid_id&#39;sss&#39, {&#39: &#39;;&#39: &#39,&#39;Fparam&#39;Fitemid_id&#39: &#39: &#39;25&#39;Fcontent&#39;21&#39;};;29&#39, &#39: &#39, &#92;: &#39;Fcontent&#39;asdf&#39, &#39;Fitemid_id&#39;}: &#39;;21&#39;Fitemid_id&#39;, &#92;,&#39: &#39;, &#39;
{&#39;: &#39, &#39;f&#39,带上id: &#39: &#39;;Fparam&#39;: &#39;};
{&#39;;;Fcontent&#39;;;Fcontent&#39;, &#92;};a&#39;;bb&#39;29&#39;;29&#39;;DFDS&#39, &#39;, &#39;f&#39;;;Fcontent&#39;;};b&#39;;test&#39items=[{&#39;testcanshu&#39;;, &#39;Fcontent&#39;, {&#39, &#39;}: &#39
提问者采纳
&#39:&;Fparam&#39;&#39;&#39;3334&#39:&testcanshu&#39:&nbsp:&sss&#39;&&&;&Fitemid_id&#39;;29&#39,&Fitemid_id&#39:&&{&#39;,&&#39;25&#39:&:&;&#39;&#39;&&&#39;&#39;&#39;Fcontent&#39;;;&#39;Fitemid_id&#39,&&#39;Fparam&#39;b3&#39;&#39;;16&#39;;;&#39;Fcontent&#39.setdefault(&nbsp,&nbsp:&&#39;3334&#39;DFDS&#39;}&nbsp:&nbsp,&,&29&#39;&&#39;&Fcontent&#39;c&#39;&#39;;;]import&&:&&&;&nbsp,&adfa&#39:&nbsp:&&22&#39:&nbsp,&&#39;;{&#39;;Fparam&#39;},&fASFDS&#39;&#39;22&#39;;&&;asdf&#39,&&#39;&nbsp,&;&#39,&,&16&#39;&{&#39;asdf&#39,&Fcontent&#39;in&sss&#39,&&;&&#39;;&}:&&nbsp,&&Fparam&&&#39:&fASFDS&#39;&#39;Fparam&#39,&};DFDS&#39;;&#39;;&#39,&nbsp:&]]&;;&#39:&&&&#39;&#39;a&#39;&#39:&;&#39;}:&&{&#39;:&&#39;&#39,&nbsp,&22&#39;&;b&#39;&#39;&&#39;b&#39;;&&,&&&&#39;,&;c&#39:&nbsp,&&#39:&25&#39;;};Fitemid_id&&{&#39;&&#39:&nbsp,&&#39;;&asdf&#39;Fitemid_id&#39;;&&;;&items:&nbsp.pprint(result){&#39;&#39;&nbsp,&&#39;25&#39;;&&Fparam&#39;&&21&#39;29&#39,&29&#39;test&#39;{&#39;Fitemid_id&#39;&&nbsp:&{&#39;Fitemid_id&#39;Fcontent&#39;;&#39;&#39;Fitemid_id&#39;&Fcontent&#39;{&#39;{&#39,&&{&#39:&test&#39;;:&&&Fcontent&#39;;&#39;adfa&#39;;Fparam&#39;&#39:&&#39;]result&Fitemid_id&&#39;;;&&&;;:&;Fitemid_id&#39;:&21&#39;]}&};29&#39;&&#39,&{&#39;Fparam&#39:&&#39;};&&#39;asdf&#39;&#39;&;{&#39;item[&&nbsp,&nbsp:&&:&;16&#39;&#39;;=&&,&&#39;Fcontent&#39,&&&#39;&&nbsp:&&#39;Fitemid_id&#39;&#39:&};};&#39:&nbsp:&nbsp:&abc&#39:&Fitemid_id&#39;;&nbsp,&&;&#39;&#39;result,&};22&#39;&nbsp,&&#39;&&nbsp:&21&#39;;&&&#39;Fitemid_id&#39;;;{&#39;&&nbsp,&&;Fitemid_id&#39;&nbsp,&&#39;;;};testcanshu&#39;;&nbsp,&};Fitemid_id&#39;a&#39;;&#39;21&#39;222&#39;&&&#39:&&&#39;abc&#39;];&nbsp,&nbsp:&;Fcontent&quot,&Fitemid_id&&;&&#39;;&#39;&f&#39:&nbspitems=[&&#39:&&nbsp:&&#39;&&#39;&#39:&item[&{&#39:&,&&&#39;;;{}for&29&#39;test&#39;{&#39,&bb&#39;&#39;&#39;item&:&;{&Fparam&#39;=&;f&#39;&nbsp,&&#39;};;&#39:&&#39;f&#39;&#39;&;Fcontent&#39;;item[&&#39,&nbsp,&;&Fitemid_id&#39;Fitemid_id&#39:&Fparam&#39;;;pprint,&&bb&#39;222&#39;)[item[&};&#39;test&#39;&sssss&#39;&#39;&#39;;&#39;&;b3&#39,&nbsp:&;&&#39;f&#39;Fparam&#39;&{&#39;&#39:&nbsp:&;&Fparam&#39;&&#39:&pprint&&&&&&Fcontent&#39;;&nbsp:&nbsp,&&#39,&Fcontent&#39;;Fitemid_id&#39;29&#39:&&#39;&&sssss&#39;;&#39
提问者评价
赞啊!谢谢大牛,刚学py,能加个扣扣交流么!
来自团队:
其他类似问题
为您推荐:
python的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁急!!Python 这个查facebook脸书上好友ID和姓名,程序图如下然后问题是,怎样查好友的好友?在线等!_百度知道
急!!Python 这个查facebook脸书上好友ID和姓名,程序图如下然后问题是,怎样查好友的好友?在线等!
]fme&quot?
在线等;t&#39;id&#39;] + &#39;friends =data&#39:
print friend[&#39;friends&quot!; +
friend[&#39,程序大神们快来帮忙下;name&#39,&quot,可以查出来个人脸书上的好友ID和姓名;&#92:怎样查好友的好友ID和姓名!.get_connections(&quot。然后问题是;)[&#39;]以上这个程序是老师给出来的
提问者采纳
&+&=&name&#39#这样呢friends&&&)[&#39;name&#39;in&&print&]&\t&#39;&\t&#39.get_connections(&g;]for&friend&nbsp:&&&+&id&#39;id&#39;&#39;in&)[&#39;friends_friends&me&friends&&friend_friend[&#39;+&friend_friend&for&&&&&]&&friend[&#39;;friend[&#39;]&nbsp.get_connections(friend[&#39,&friends_print&friends&+&&&&data&#39;];data&#39;&friends,&friend_friend[&#39;&#39:&id&#39;]&&&&=&g
应该是对的!!!感谢!!
提问者评价
大神!超级感谢!!辛苦啦!!以后还有问题还请多多指教!!!
来自团队:
其他类似问题
为您推荐:
facebook的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁如何利用python自动提取txt文件中的节点和关系权重,并通过动态规划方法识别出最优路径和所有节点的代码_百度知道
如何利用python自动提取txt文件中的节点和关系权重,并通过动态规划方法识别出最优路径和所有节点的代码
约束条件为源节点和结束节点之间的步长不超过x(此值为固定值)。数据文件格式如下,视为权重,并将relation_value的值附加到两个节点之间、B_id。权重的计算为当A指向B时利用python提取文件中的节点,即A_id,权重为1,双向指向时为2,并通过动态规划方法(权重值之和最大的最短路径)针对一个具体的节点为其识别出最优路径和所有节点,B没有指向A时
同时相对于每条路径都有一个一位数组。输出每一条路径和路径上的节点,存储与源节点的权重(1或者2)。当距离为6时停止寻找在第一列取一个节点。然后再以类似的方式寻找5052的下一个节点,其所在的第二列的元素5052自动附加为下一个节点,比如 22605。这样就形成了很多条围绕22605路径
提问者采纳
你是哪点不会感觉挺麻烦的,我可以和你说说思路。,动态规划早就忘了,我就不写了
”从文件中取节点和附加权重“不会 。
每次读一行,然后split成由3个元素组成的列表就好了啊。
提问者评价
来自团队:
其他类似问题
为您推荐:
python的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 求助大神这是什么歌4 的文章

 

随机推荐