小编Pau*_*ce.的帖子

计算词典列表中的条目:for loop with list comprehension with map(itemgetter)

在我编写的Python程序中,我使用for循环和增量变量与列表理解进行比较,map(itemgetter)len()计算列表中字典中的条目.使用每种方法需要相同的时间.我做错了什么还是有更好的方法?

这是一个大大简化和缩短的数据结构:

list = [
  {'key1': True, 'dontcare': False, 'ignoreme': False, 'key2': True, 'filenotfound': 'biscuits and gravy'},
  {'key1': False, 'dontcare': False, 'ignoreme': False, 'key2': True, 'filenotfound': 'peaches and cream'},
  {'key1': True, 'dontcare': False, 'ignoreme': False, 'key2': False, 'filenotfound': 'Abbott and Costello'},
  {'key1': False, 'dontcare': False, 'ignoreme': True, 'key2': False, 'filenotfound': 'over and under'},
  {'key1': True, 'dontcare': True, 'ignoreme': False, 'key2': True, 'filenotfound': 'Scotch and... well... neat, thanks'}
]
Run Code Online (Sandbox Code Playgroud)

这是for循环版本:

#!/usr/bin/env python
# …
Run Code Online (Sandbox Code Playgroud)

python dictionary loops list-comprehension map

4
推荐指数
1
解决办法
6579
查看次数

如何在linq填充的组合框中插入空行?

我有一个项目列表,由Linq从DB中给出.现在我用这个列表填充了一个ComboBox.

我怎么能得到一个空行?

我的问题是,在列表中,值不允许为null,因此我无法轻松添加新的空项.

linq

3
推荐指数
1
解决办法
2747
查看次数

如何编写Bash脚本来显示菜单,接受用户输入和显示数据?

我想为我的作业"书店服务"编写带用户输入的Bash脚本.首先,它有选项菜单,如"添加新书名""作者姓名""删除书籍""更新""搜索""显示书籍列表""退出".如果我选择选项1,我必须输入新书的名字.当我选择"show book list"选项时,如何编写用户输入并显示输出数据.我在这个作业中遇到了麻烦.请有人帮我清楚这一点,这对你们所有人都非常有帮助和感激.

bash

3
推荐指数
1
解决办法
3万
查看次数

如何使用连接在一起的命令在AWK中使用getline

这让我疯了.我想要做的就是从awk向终端传递命令,其中命令是由其他变量连接在一起的字符串.

awk的文档说的是类似的东西

"echo" $1 | getline var
Run Code Online (Sandbox Code Playgroud)

应该将$ 1的值放入var.但这种情况并非如此.我在这里错过了什么?

我应该补充一点,我实际上有一个循环

for ( i = 1; i <=NF ; i=i+1 )
{
    "echo" $i | getline var
     printf var " "
}

printf "\n"
Run Code Online (Sandbox Code Playgroud)

对于inputfile喜欢

 0 2
 1 2
Run Code Online (Sandbox Code Playgroud)

输出

 0 0
 0 0
Run Code Online (Sandbox Code Playgroud)

搞什么鬼.

awk getline

3
推荐指数
1
解决办法
2万
查看次数

标准来源(OSX上的Bash)

我想做这样的事情

 ruby test.rb | source /dev/stdin
Run Code Online (Sandbox Code Playgroud)

test.rb打印出来的地方cd /.没有错误,但它也没有做任何事情.如果我用这个:

 ruby test.rb > /tmp/eraseme2352; source /tmp/eraseme2352
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我想避免中间文件.

编辑:这一点的重点是命令完成后需要保持更改.对不起,我之前没有说清楚.

macos bash

3
推荐指数
1
解决办法
1953
查看次数

AWK脚本:如何使用awk删除字段分隔符

需要以下输出

ONGC044 
ONGC043
ONGC042
ONGC041
ONGC046
ONGC047
Run Code Online (Sandbox Code Playgroud)

从这个输入

Medium Label                   Medium ID                            Free Blocks
===============================================================================
[ONGC044] ECCPRDDB_FS_43       ac100076:4aed9b39:44f0:0001            195311616
[ONGC043] ECCPRDDB_FS_42       ac100076:4aed9b1d:44e8:0001            195311616
[ONGC042] ECCPRDDB_FS_41       ac100076:4aed9af4:4469:0001            195311616
[ONGC041] ECCPRDDB_FS_40       ac100076:4aed9ad3:445e:0001            195311616
[ONGC046] ECCPRDDB_FS_44       ac100076:4aedd04a:68c6:0001            195311616
[ONGC047] ECCPRDDB_FS_45       ac100076:4aedd4a0:6bf5:0001            195311616
Run Code Online (Sandbox Code Playgroud)

shell awk

3
推荐指数
1
解决办法
2972
查看次数

在asp.net日历中禁用星期日

如何在asp.net日历控件中禁用Sunday?我正在使用C#.

asp.net calendar

3
推荐指数
1
解决办法
3760
查看次数

重复文字和硬编码

我发现以下模式经常发生:

 b->last = ngx_cpymem(b->last, "</pre><hr>", sizeof("</pre><hr>") - 1);
Run Code Online (Sandbox Code Playgroud)

请注意,文字字符串使用了两次.提取物来自nginx源库.

在编译单元中遇到这些文字时,编译器应该能够合并这些文字.

我的问题是:

  1. 当在编译单元中遇到时,商业级编译器(VC++,GCC,LLVM/Clang)是否会删除此冗余?
  2. 链接目标文件时,(静态)链接器是否会删除此类冗余.
  3. 如果2适用,这种优化会在动态链接期间发生吗?
  4. 如果1和2适用,它们是否适用于所有文字.

这些问题很重要,因为它允许程序员在不损失效率的情况下进行冗长 - 即,考虑将大量静态数据模型硬连接到程序中(例如,某些低级方案中使用的决策支持系统的规则) .

编辑

2分/澄清

  1. 上面的代码由公认的"主"程序员编写.这家伙一手写了nginx.

  2. 我没有问过文字硬编码的哪种可能机制更好.所以不要偏离主题.

编辑2

我最初的例子是非常人为的和限制性的.以下代码段显示了嵌入到内部硬编码知识中的字符串文字的用法.第一个片段用于配置解析器告诉它为哪个字符串设置哪个枚举值,第二个片段通常用作程序中的字符串.我个人对此感到满意,只要编译器使用字符串文字的一个副本,并且由于元素是静态的,它们不会进入全局符号表.

static ngx_conf_bitmask_t  ngx_http_gzip_proxied_mask[] = {
   { ngx_string("off"), NGX_HTTP_GZIP_PROXIED_OFF },
   { ngx_string("expired"), NGX_HTTP_GZIP_PROXIED_EXPIRED },
   { ngx_string("no-cache"), NGX_HTTP_GZIP_PROXIED_NO_CACHE },
   { ngx_string("no-store"), NGX_HTTP_GZIP_PROXIED_NO_STORE },
   { ngx_string("private"), NGX_HTTP_GZIP_PROXIED_PRIVATE },
   { ngx_string("no_last_modified"), NGX_HTTP_GZIP_PROXIED_NO_LM },
   { ngx_string("no_etag"), NGX_HTTP_GZIP_PROXIED_NO_ETAG },
   { ngx_string("auth"), NGX_HTTP_GZIP_PROXIED_AUTH },
   { ngx_string("any"), NGX_HTTP_GZIP_PROXIED_ANY },
   { ngx_null_string, 0 }
};
Run Code Online (Sandbox Code Playgroud)

紧随其后:

static ngx_str_t  ngx_http_gzip_no_cache = ngx_string("no-cache");
static ngx_str_t  ngx_http_gzip_no_store …
Run Code Online (Sandbox Code Playgroud)

c c++ compiler-theory micro-optimization string-interning

3
推荐指数
3
解决办法
1451
查看次数

使用select会出现语法错误

我想让这个工作:

echo "Would you like to configure dns?"
select yn in "Yes" "No"; do
    case $yn in
        Yes ) echo "you have selected to configure dns"; break;;
        No ) exit; break;;
    esac
done
Run Code Online (Sandbox Code Playgroud)

我一直收到这个错误:

menu.sh:2:select:not found
menu.sh:7:语法错误:"done"意外

乔,先生,谢谢

syntax bash select syntax-error

3
推荐指数
1
解决办法
4207
查看次数

在unix中排序日期字段

我有包含数十万条记录的文本文件.其中一个字段是日期字段.有没有办法根据日期字段对文件进行排序?

09-APR-12 04.08.43.632279000 AM
19-MAR-12 03.53.38.189606000 PM
19-MAR-12 03.56.27.933365000 PM
19-MAR-12 04.00.13.387316000 PM
19-MAR-12 04.04.45.168361000 PM
19-MAR-12 03.54.32.595348000 PM
27-MAR-12 10.28.14.797580000 AM
28-MAR-12 12.28.02.652969000 AM
27-MAR-12 07.28.02.828746000 PM
Run Code Online (Sandbox Code Playgroud)

输出应该是

19-MAR-12 03.53.38.189606000 PM
19-MAR-12 03.54.32.595348000 PM
19-MAR-12 03.56.27.933365000 PM
19-MAR-12 04.00.13.387316000 PM
19-MAR-12 04.04.45.168361000 PM
27-MAR-12 10.28.14.797580000 AM
27-MAR-12 07.28.02.828746000 PM
28-MAR-12 12.28.02.652969000 AM
09-APR-12 04.08.43.632279000 AM
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用sort命令来命令日期(将日期字段作为字符串),但它没有给出正确的输出.

unix sorting bash shell

3
推荐指数
2
解决办法
9082
查看次数