为什么在以下列表理解中print(x)
这里不是有效的(SyntaxError
)?
my_list=[1,2,3]
[print(my_item) for my_item in my_list]
Run Code Online (Sandbox Code Playgroud)
为了对比 - 以下不会给出语法错误:
def my_func(x):
print(x)
[my_func(my_item) for my_item in my_list]
Run Code Online (Sandbox Code Playgroud) 编译器似乎没问题(仅限单个数字十六进制值):
byte[] rawbytes={0xa, 0x2, 0xf};
Run Code Online (Sandbox Code Playgroud)
但不是这个:
byte[] rawbytes={0xa, 0x2, 0xff};
Run Code Online (Sandbox Code Playgroud)
我得到"可能的精度损失:int required:byte"错误?
我做错了什么 - 或者是单个数字的十六进制数字是一个特例吗?
Java 1.5.x.
我有一些(log4j生成)日志文件要通过; 我知道他们的格式很好(我的意思是我已经有了可以使用的现成的正则表达式等).
我想在加载它时自动在VIM中突出显示它们(*.log).
日志文件条目如下所示:
YYYY-MM-DD HH:MM:ss,SSS [...] #LOG-LEVEL# [...] Message
Run Code Online (Sandbox Code Playgroud)
其中#LOG-LEVEL#是标准'ERROR'之一,'INFO','DEBUG','FATAL'......和'YYYY-MM ......'表示毫秒级分辨率的日期/时间.
为了让我开始,在(例如)黄色背景中用蓝色文本突出显示日期字符串所需的步骤是什么 - 以及当文本显示为"错误"时,这应该具有带有白色文本的红色背景.
我已经尝试过这方面的一些教程,但是找不到一个很容易理解的,所以我在这里做了一些真正的基本步骤!
干杯
编辑:以下是我所做的总结,基于以下说明:
在.vim\syntax中创建了语法文件'log.vim'(请参阅下面的示例内容).
在.vim\ftdetect\log.vim中创建了一个文件,其中包含以下内容:
au BufRead,BufNewFile*.log set filetype = log
确保我的启动设置中包含以下内容:
文件类型的语法
作为一个实验,我这样做了:
letters=['a','b','c','d','e','f','g','h','i','j','k','l']
for i in letters:
letters.remove(i)
print letters
Run Code Online (Sandbox Code Playgroud)
最后一次打印显示并非所有项目都被删除了?(每隔一个人).
IDLE 2.6.2
>>> ================================ RESTART ================================
>>>
['b', 'd', 'f', 'h', 'j', 'l']
>>>
Run Code Online (Sandbox Code Playgroud)
对此有何解释?如何重新编写以删除每个项目?
如果我有这个:
a='abcdefghij'
b='de'
Run Code Online (Sandbox Code Playgroud)
然后这在一个:
b in a => True
Run Code Online (Sandbox Code Playgroud)
有没有办法用列表做类似的事情?像这样:
a=list('abcdefghij')
b=list('de')
b in a => False
Run Code Online (Sandbox Code Playgroud)
'False'结果是可以理解的 - 因为它正确地寻找元素'de',而不是(我碰巧想要它做什么)'d'后跟'e'
这是有效的,我知道:
a=['a', 'b', 'c', ['d', 'e'], 'f', 'g', 'h']
b=list('de')
b in a => True
Run Code Online (Sandbox Code Playgroud)
我可以处理数据以获得我想要的东西 - 但是有一个简短的Pythonic方法吗?
澄清:我需要在这里保留排序(b = ['e','d'],应该返回False).
如果它有帮助,我所拥有的是列表列表:这些列表表示有向图中从节点1到节点-x的所有可能路径(访问节点列表):我想要"排除"常见路径任何更长的路径.(因此寻找所有不可缩短的"原子"路径,构成所有较长的路径).
将XML从文件读入变量可以这样做:
[xml]$x=get-content myxml.xml
Run Code Online (Sandbox Code Playgroud)
但为什么不呢:
$x=[xml]get-content myxml.xml
Run Code Online (Sandbox Code Playgroud)
这使:
Unexpected token 'get-content' in expression or statement.
At line:1 char:20
+ $x=[xml]get-content <<<< myxml.xml
+ CategoryInfo : ParserError: (get-content:String) [], ParentContainsErrorRecordException
+ FullyQualifiedErrorId : UnexpectedToken
Run Code Online (Sandbox Code Playgroud)
那就是:为什么在等号的左侧进行强制转换操作,通常在编程语言中,转换是在右侧完成的,如(例如)在java中:
a=(String)myobject;
Run Code Online (Sandbox Code Playgroud) 我正在处理一个基于记录的文本文件:所以我正在寻找一个构成记录开头的起始字符串:没有记录结束标记,所以我使用下一条记录的开头来划分最后一项记录
所以我已经构建了一个简单的程序来实现这一点,但是我看到一些让我感到惊讶的事情:看起来Ruby似乎忘记了局部变量 - 或者我发现了编程错误?[虽然我不认为我有:如果我在循环之前定义变量'message'我没有看到错误].
这是一个简单的示例,其中包含示例输入数据和注释中的错误消息:
flag=false
# message=nil # this is will prevent the issue.
while line=gets do
if line =~/hello/ then
if flag==true then
puts "#{message}"
end
message=StringIO.new(line);
puts message
flag=true
else
message << line
end
end
# Input File example:
# hello this is a record
# this is also part of the same record
# hello this is a new record
# this is still record 2
# hello this is record 3 etc etc
#
# …
Run Code Online (Sandbox Code Playgroud) 我正在使用CSS(通过JQuery,但与此问题无关)突出显示HTML文件中的某些元素:我使用"pre"标签来分隔我文件中的逻辑元素,但我注意到"pre"标签似乎在元素之间留下了新的界限.
我可以使用CSS摆脱这些吗?
(或者我应该使用什么而不是"pre"标签?文本元素可能包含自己的HTML元素:不应该呈现,并且应该按字面显示为源代码:因此我最初选择"pre"标签)
这是我正在使用的HTML的一个示例:( 此示例需要http://docs.jquery.com/Downloading_jQuery)
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.4.min.js">
</script>
</head>
<body>
<pre class="error">
This is an error line.
stack.trace.blah.blah
more.blah.blah
yadda.yadda.blah</pre>
<pre class="ok">
this is not an error line.it contains html
<html><head></head><body>hello</body></html></pre>
<pre class="error">
This is an error line.
stack.trace.blah.blah
more.blah.blah
yadda.yadda.blah</pre>
<pre class="ok">
<script type="text/javascript">
$("pre.error").css({"background-color":"red","color":"white","display":"block","padding":"0", "margin":"0"});
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我正在使用Firefox 3.6.12.这就是上面的代码导致的结果:
这是我想要的模拟输出(切换到黄色,只是因为我使用了我的vim编辑器,假装它是红色的!)
解:
是对所有PRE标签使用'display:inline'.(之前我只是将'display:inline'应用于上面示例中的'error'标记,并且忘记对'ok'预标签执行相同操作.
我需要一个具有半自动'to_s'方法的类(实际上生成XML).我想遍历在'attr_accessor'行中设置的所有自动方法:
class MyClass
attr_accessor :id,:a,:b,:c
end
c=MyClass.new
Run Code Online (Sandbox Code Playgroud)
到目前为止,我正在做一个基本的:
c.methods - Object.methods
=> ["b", "b=", "c", "c=", "id=", "a", "a="]
Run Code Online (Sandbox Code Playgroud)
我面临一些挑战:
这就是我想要做的:我想设计一个简单的Object,它有一个'to_s',它将构建一个XML片段:例如.
<id> 1 </id>
<a> Title </a>
<b> Stuff </b>
<c>
<x-from-other-object>
<x-from-other-object>
....
</c>
Run Code Online (Sandbox Code Playgroud)
然后从这个简单的对象继承我的数据类:这样(希望)我得到一个mechansim来构建一个完整的XML文档.
我相信我也在这里重新发明轮子......所以其他久经考验的方法也值得欢迎.