我最近比较了处理速度[]和,list()并且惊讶地发现它的[]运行速度比它快三倍list().我跑了相同的测试与{}和dict(),结果几乎相同:[]和{}两个花了大约0.128sec /百万次,而list()和dict()大约花费每个0.428sec /万次.
为什么是这样?不要[]和{}(可能()和'',太)立即传回文字的一些空股票的份,而其明确命名同行(list(),dict(),tuple(),str())完全去创建一个对象,他们是否真的有元素?
我不知道这两种方法有何不同,但我很想知道.我无法在文档中或在SO上找到答案,搜索空括号结果比我预期的问题更多.
我拨打了我的时序结果timeit.timeit("[]")和timeit.timeit("list()"),和timeit.timeit("{}")和timeit.timeit("dict()"),分别比较列表和字典.我正在运行Python 2.7.9.
我最近发现的" 为什么是,如果真慢于如果为1? "来比较的性能if True来if 1,似乎触及了类似的文字,对全局的情况; 也许值得考虑一下.
在C#中的逐字字符串文字(@"foo")中,反斜杠不被视为转义,因此执行"获取双引号"不起作用.有没有办法在逐字字符串文字中获得双引号?
这可以理解为不起作用:
string foo = @"this \"word\" is escaped";
Run Code Online (Sandbox Code Playgroud) [] =空 list
() =空 tuple
{} =空 dict
空的是否有类似的符号set?或者我必须写set()?
如何用Python文字将整数表示为二进制数?
我很容易找到十六进制的答案:
>>> 0x12AF
4783
>>> 0x100
256
Run Code Online (Sandbox Code Playgroud)
和八进制:
>>> 01267
695
>>> 0100
64
Run Code Online (Sandbox Code Playgroud)
你如何使用文字在Python中表达二进制文件?
答案摘要
int('01010101111',2)文字来表示二进制文件,但不能用文字表达.0b1100111或0B1100111.0o27或0O27(第二个字符是字母O)表示八进制.027octals 的旧语法.由同事作为一个谜题,我无法弄清楚这个C程序实际上是如何编译和运行的.什么是这个>>>=运算符和奇怪的1P1文字?我在Clang和GCC进行了测试.没有警告,输出是"???"
#include <stdio.h>
int main()
{
int a[2]={ 10, 1 };
while( a[ 0xFULL?'\0':-1:>>>=a<:!!0X.1P1 ] )
printf("?");
return 0;
}
Run Code Online (Sandbox Code Playgroud) 为了使用十进制数据类型,我必须使用变量初始化来执行此操作:
decimal aValue = 50.0M;
Run Code Online (Sandbox Code Playgroud)
M部分代表什么?
"foo" instanceof String //=> false
"foo" instanceof Object //=> false
true instanceof Boolean //=> false
true instanceof Object //=> false
false instanceof Boolean //=> false
false instanceof Object //=> false
// the tests against Object really don't make sense
Run Code Online (Sandbox Code Playgroud)
数组文字和对象文字匹配......
[0,1] instanceof Array //=> true
{0:1} instanceof Object //=> true
Run Code Online (Sandbox Code Playgroud)
为什么不是所有人呢?或者,他们为什么不呢?
而且,它们是什么样的呢?
在FF3,IE7,Opera和Chrome中也是如此.所以,至少它是一致的.
错过了一些.
12.21 instanceof Number //=> false
/foo/ instanceof RegExp //=> true
Run Code Online (Sandbox Code Playgroud) 如果我有方法
void f(byte b);
Run Code Online (Sandbox Code Playgroud)
如何在不进行强制转换的情况下使用数字参数调用它?
f(0);
Run Code Online (Sandbox Code Playgroud)
给出错误.
通常情况下,我看到人们使用这样的类文字:
Class<Foo> cls = Foo.class;
Run Code Online (Sandbox Code Playgroud)
但是,如果类型是通用的,例如List?这工作正常,但有一个警告,因为List应该参数化:
Class<List> cls = List.class
Run Code Online (Sandbox Code Playgroud)
那么为什么不加一个<?>呢?好吧,这会导致类型不匹配错误:
Class<List<?>> cls = List.class
Run Code Online (Sandbox Code Playgroud)
我认为这样的东西可行,但这只是一个简单的'语法错误:
Class<List<Foo>> cls = List<Foo>.class
Run Code Online (Sandbox Code Playgroud)
我如何Class<List<Foo>>静态获取,例如使用类文字?
我可以用@SuppressWarnings("unchecked")摆脱造成在第一个例子中的非参数使用目录的警告,Class<List> cls = List.class但我宁愿不要.
有什么建议?
我目前在JavaScript和用C#编程的服务器之间有一个WebSocket.在JavaScript中,我可以使用关联数组轻松传递数据:
var data = {'test': 'val',
'test2': 'val2'};
Run Code Online (Sandbox Code Playgroud)
为了在服务器端表示这个数据对象,我使用了a Dictionary<string, string>,但这比JavaScript中的"打字更贵":
Dictionary<string, string> data = new Dictionary<string,string>();
data.Add("test", "val");
data.Add("test2", "val2");
Run Code Online (Sandbox Code Playgroud)
DictionaryC#中的关联数组是否有某种文字符号?
literals ×10
c# ×3
python ×3
java ×2
binary ×1
bit-shift ×1
byte ×1
c ×1
class ×1
decimal ×1
dictionary ×1
digraphs ×1
escaping ×1
generics ×1
instanceof ×1
integer ×1
javascript ×1
list ×1
obfuscation ×1
performance ×1
set ×1
string ×1
syntax ×1