草庐IT

re-assign

全部标签

python - re.sub 用逗号替换空格

我有一个看起来像这样的项目列表:2.4-2.04.3-6.012.51.0我想要的是删除所有这些空格并将它们替换为“,”(逗号),除了第一个数字前面的空格(它们应该被删除(空格)而不是替换为任何东西)。所以上面的字符串项在替换后应该是这样的:2.4,-2.0,4.3-6.0,12.5,1.0不是这样的:,2.4,-2.0,4.3,-6.0,12.5,1.0下面的代码是做什么的:newStrings=[]forsinstrings:newStrings.append(re.sub('\s+',',',s))应该使用re.sub的什么正则表达式来实现?谢谢。 最

python - re模块中的groups和groups有什么区别?

这里是:importre>>>s='abc-jk-lm'>>>m=re.search('-\w+\w+',s)>>>m.groups()()>>>m.group(0)'-jk'为什么groups()没有给我任何东西,但group(0)却有一些?有什么区别?跟进代码如下>>>re.findall('(-\w+\w+)',s)['-jk','-lm','-no']findall可以得到所有的-\w+\w+子串,但是看看这个:>>>m=re.search('(-\w+\w+)+',s)>>>m.groups()('-jk',)为什么search不能给我所有的子字符串?再次跟进如果s='abc

python - 语法错误 : cannot assign to operator

defRandomString(length,distribution):string=""fortindistribution:((t[1])/length)*t[1]+=stringreturnshuffle(string)如标题中所述,这会返回一个语法错误。在此示例中,distribution是一个元组列表,每个元组包含一个字母及其分布,列表中的所有分布加起来为100,例如:[("a",50),("b",20),("c",30)]而length就是你想要的字符串的长度。 最佳答案 确保变量没有连字符(-)。连字符在Python

python - scrapy response.xpath 在具有默认命名空间的 xml 文档上返回空数组,而 response.re 有效

我是scrapy的新手,我正在玩scrapyshell试图抓取这个网站:www.spiegel.de/sitemap.xml我用scrapyshell"http://www.spiegel.de/sitemap.xml"在我使用的时候一切正常response.body我可以看到整个页面,包括xml标签但是例如这个:response.xpath('//loc')根本行不通。我得到的结果是一个空数组同时response.selector.re('somevalidregexpexpression')会起作用知道可能是什么原因吗?可能与编码有关?该网站不是utf-8我在Win7上使用pyth

python - 为什么\b 在 python re 模块中不起作用?

这个问题在这里已经有了答案:Doregularexpressionsfromtheremodulesupportwordboundaries(\b)?(5个答案)关闭5年前。众所周知,\b在正则表达式中表示单词边界。但是,python中re模块的以下代码不起作用:>>>p=re.compile('\baaa\b')>>>p.findall("aaavvv")[]我觉得findall的返回结果应该是["aaa"],但是什么也没找到。怎么了?

python - 字典中的 "TypeError: ' unicode ' object does not support item assignment"

我正在尝试构建/更新字典。我将昵称作为temp_dict中的键并寻找要添加的ID。摘self的代码。我认为你看到我的错误就足够了。d1={u'status':u'ok',u'count':1,u'data':[{u'nickname':u'45sss',u'account_id':553472}]}temp_dict={}forkey,valueind1.iteritems():if"data"==key:fordic2invalue:x=dic2['nickname']y=dic2['account_id']temp_dict[x]=y;我的错误:Traceback(mostrece

python - re.sub (".*", ", "(replacement )", "text") 在 Python 3.7 上加倍替换

在Python3.7上(在Windows64位上测试过),使用RegEx.*替换字符串会使输入字符串重复两次!在Python3.7.2上:>>>importre>>>re.sub(".*","(replacement)","sampletext")'(replacement)(replacement)'在Python3.6.4上:>>>importre>>>re.sub(".*","(replacement)","sampletext")'(replacement)'在Python2.7.5(32位)上:>>>importre>>>re.sub(".*","(replacement)"

python - 如何在 Python 中正确地使用 re.sub() 进行迭代

我想制作一个创建脚注的Python脚本。这个想法是找到所有类型为"Somebodytext.{^}{Somefootnotetext.}"的字符串,并将它们替换为"Somebodytext.^#",其中"^#"是正确的脚注编号。(我的脚本的不同部分处理实际打印出文件底部的脚注。)我为此使用的当前代码是:pattern=r"\{\^\}\{(.*?)\}"i=0defcreate_footnote_numbers(match):globalii+=1return""+str(i)+""new_body_text=re.sub(pattern,create_footnote_numbers

python - 为什么我应该在 Python 中引用 "names"和 "binding"而不是 "variables"和 "assignment"?

为什么我应该在Python中引用“名称”和“绑定(bind)”而不是“变量”和“赋值”?我知道这个问题有点笼统,但我真的很想知道:) 最佳答案 在C和C++中,变量是命名的内存位置。变量的值是存储在该位置的值。分配给变量并修改该值。所以变量是内存位置,而不是它的名称。在Python中,变量是用来引用对象的名称。变量的值就是那个对象。到目前为止听起来是一样的。但是分配给变量并且您不修改对象本身,而是更改变量引用的对象。所以变量是名称,而不是对象。出于这个原因,如果您抽象地考虑Python的属性,或者如果您同时谈论多种语言,那么对这两种

python - "local variable referenced before assignment"——只有功能?

采用以下代码:importsomethingdefFoo():something=something.SomeClass()returnsomething...这显然不是有效代码:UnboundLocalError:localvariable'something'referencedbeforeassignment...因为局部变量something被创建,但没有赋值,在=的RHS被评估之前。(例如,请参见thisrelatedanswer'scomment。)这对我来说似乎有点奇怪,但可以肯定的是,我会接受它。现在,为什么下面的代码有效?classFoo(object):someth