目前我这样做:
try:
something = iterator.next()
# ...
except StopIteration:
# ...
Run Code Online (Sandbox Code Playgroud)
但我想要一个表达式,我可以放在一个简单的if
陈述中.是否有任何内置功能可以使这些代码看起来不那么笨拙?
any()
False
如果iterable为空,则返回,但如果不是,则可能会迭代所有项.我只需要它来检查第一项.
有人问我要做什么.我编写了一个执行SQL查询并生成结果的函数.有时当我调用此函数时,我只想知道查询是否返回任何内容并根据它做出决定.
还在学习python(最后!)并且还不能完全绕过这个.我想要做的是使用列表中的第三项按值对列表进行排序.当值只是一个数字或字符串时,按值排序字典很容易,但是这个列表让我感到困惑.
例:
myDict = { 'item1' : [ 7, 1, 9], 'item2' : [8, 2, 3], 'item3' : [ 9, 3, 11 ] }
Run Code Online (Sandbox Code Playgroud)
我希望能够按照每个列表中的第三个值的顺序遍历字典,在本例中为9,3,11.
非常感谢您的帮助!
我特别关注何时在char指针上使用malloc
char *ptr;
ptr = "something";
...code...
...code...
ptr = "something else";
Run Code Online (Sandbox Code Playgroud)
malloc是否会为了这个微不足道的东西?如果是,为什么?如果没有,那么什么时候需要char指针?
我在将一些东西从Solaris移植到Linux时遇到的一个问题是Solaris编译器__FILE__
在预处理过程中将宏扩展为文件名(例如MyFile.cpp),而Linux上的gcc扩展到完整路径(例如/ home /用户/ MYFILE.CPP).使用basename()可以很容易地解决这个问题但是......如果你经常使用它,那么对basename()的所有调用都必须加起来,对吧?
这是问题所在.有没有办法使用模板和静态元编程,在编译时运行basename()或类似的?由于它__FILE__
是常量且在编译时已知,因此可能更容易.你怎么看?可以吗?
假设我想使用标准socket
模块从套接字读取一行:
def read_line(s):
ret = ''
while True:
c = s.recv(1)
if c == '\n' or c == '':
break
else:
ret += c
return ret
Run Code Online (Sandbox Code Playgroud)
究竟发生了s.recv(1)
什么?它每次都会发出系统调用吗?我想我应该添加一些缓冲,无论如何:
为了最好地匹配硬件和网络现实,bufsize的值应该是2的相对较小的幂,例如4096.
http://docs.python.org/library/socket.html#socket.socket.recv
但是编写高效且线程安全的缓冲似乎并不容易.如果我使用file.readline()
怎么办?
# does this work well, is it efficiently buffered?
s.makefile().readline()
Run Code Online (Sandbox Code Playgroud) 这是我到目前为止,但我需要设置边距:
def send_fax
contact = Contact.find_by_id(self.contact_id)
pdf = Prawn::Document.new
pdf.font "Times-Roman"
pdf.move_down(20)
pdf.text "ATTN: #{contact.first_name} #{contact.last_name}", :size => , :style => :bold
pdf.text "RE: #{self.subject}"
pdf.move_down(20)
pdf.text "#{self.body}"
OutboundMailer.deliver_fax_email(contact, self, pdf)
end
Run Code Online (Sandbox Code Playgroud) 我有一个主题可以更改活动的打开/关闭/进入/退出动画:
<style name="down_up_theme" parent="Theme.rtlfr">
<item name="android:windowAnimationStyle">@style/down_up_animation</item>
</style>
<style name="down_up_animation" parent="@android:style/Animation.Activity">
<item name="android:activityOpenEnterAnimation">@anim/slide_in_top</item>
<item name="android:activityOpenExitAnimation">@anim/hold</item>
<item name="android:activityCloseEnterAnimation">@anim/hold</item>
<item name="android:activityCloseExitAnimation">@anim/slide_out_bottom</item>
</style>
Run Code Online (Sandbox Code Playgroud)
在清单中:
<activity android:name=".activity.ArticlesActivity"
android:theme="@style/down_up_theme" />
Run Code Online (Sandbox Code Playgroud)
目标是使活动内容在开始时向下滑动,在退出时向上滑动.
动画在2.3上运行良好.但是,在4.0上,退出动画(向上滑动)不起作用.动画的作用是关闭从此活动中产生的活动.在我的例子中,我想用文章列表来动画关闭活动,而不是关闭文章细节有滑动动画.
我想我可以尝试将结束动画添加到生成我想要动画的活动的活动中,但它实际上产生了应该具有不同动画的活动.我也找不到有关此文档中 2.3和4.0差异的任何信息.
如何让我的动画在4.0上运行?
如果我在python中有一个列表,我如何创建对列表的一部分的引用?例如:
myList = ["*", "*", "*", "*", "*", "*", "*", "*", "*"]
listPart = myList[0:7:3] #This makes a new list, which is not what I want
myList[0] = "1"
listPart[0]
"1"
Run Code Online (Sandbox Code Playgroud)
这是可能的,如果是这样,我将如何编码?
干杯,乔
我希望能够为任何文本视图提供与禁用它相同的方面.目前我正在使用一种继承TextAppearance
并添加灰色文本颜色的样式,但我更喜欢使用内置的东西,它可以完美地与任何主题一起使用.
我试过这个,但它不起作用:
val map:Map[String,String] = for {
tuple2 <- someList
} yield tuple2._1 -> tuple2._2
Run Code Online (Sandbox Code Playgroud)
如何将Tuple2s列表转换为Map?