我有一个列表,看起来像这样:
[['Tom', 'Dick'], ['Harry', 'John', 'Mike'], ['Bob']]
Run Code Online (Sandbox Code Playgroud)
我想将它变成一个字典,其中每个键都是一个名称,每个值都是一个与列表中子列表位置相对应的数字:
{'Tom': 0, 'Dick': 0, 'Harry': 1, 'John': 1, 'Mike': 1, 'Bob': 2}
Run Code Online (Sandbox Code Playgroud)
我尝试了各种列表推导,但我无法让它与嵌套列表一起工作.我可以使用嵌套循环,如下所示:
names = [['Tom', 'Dick'], ['Harry', 'John', 'Mike'], ['Bob']]
names_dict = {}
for i, name_sublist in enumerate(names):
for name in name_sublist:
names_dict[name] = i
Run Code Online (Sandbox Code Playgroud)
但我怀疑有一种更短,更优雅的方式.
给出各种长度单词的列表,找到任何单词的最大长度的最佳方法是什么?
例如,以下应返回6
findMaxLen("a,set,of,random,words")
Run Code Online (Sandbox Code Playgroud)
当然,这样做是相当微不足道的......
<cffunction name="findMaxLen" returntype="Numeric">
<cfset var CurMax = 0 />
<cfset var CurItem = 0 />
<cfloop index="CurItem" list="#Arguments[1]#">
<cfif Len(CurItem) GT CurMax >
<cfset CurMax = Len(CurItem)/>
</cfif>
</cfloop>
<cfreturn CurMax />
</cffunction>
Run Code Online (Sandbox Code Playgroud)
或者,更短一点......
<cffunction name="findMaxLen" returntype="Numeric">
<cfset var CurMax = 0 />
<cfset var CurItem = 0 />
<cfloop index="CurItem" list="#Arguments[1]#">
<cfset CurMax = Max( CurMax , Len(CurItem) ) />
</cfloop>
<cfreturn CurMax />
</cffunction>
Run Code Online (Sandbox Code Playgroud)
但是有更好的方法 - 更高效的东西吗?
也许是一些Java方法?转换为数组并按项目长度排序?计算逗号之间的最大差距?
在实际应用中,无论是上述两个例子将罚款我目前的需求,这是不适合的东西是性能的关键,所以我并不需要一个答案,但我认为这仍然将是有趣的看看人们会想出什么......
我已经启动并运行了一个 .net 日历,并从数据库中获取信息。默认情况下,天数会应用回发操作。
我想做的是将该操作应用于整个单元格,这样用户就不需要仅单击文本链接。
我是 dayRenderer 操作,我有以下行来尝试复制该操作,但第二个参数我不确定如何设置它。
它似乎给了它一个 id,例如 3315,但我不确定如何手动获取下面这段代码所需的 id。我希望这是有道理的!我是 .NET 新手,所以不太了解我的术语!
e.Cell.Attributes.Add("OnClick",
string.Format("javascript:__doPostBack('{0}','{1}')",
Calendar1.ClientID, ***ID_NEEDED_HERE***));
Run Code Online (Sandbox Code Playgroud) 现在我有一个web java项目,它通过将ear archive复制到服务器目录(全部使用Ant)自动构建并部署到JBoss.
我需要的是一种机制,不仅可以自动部署应用程序,还可以验证应用程序是否已成功部署并对其运行HttpUnit测试.
问题是如何自动监视部署过程以等待部署完成时以及仅在运行测试之后.所以我想在"一键"中构建,部署,运行测试(我使用Cruise Control).
关于解决问题的任何建议,我将不胜感激.
我需要尝试将端口80 flex游戏实现为服务器方法.
我想询问是否有人之前已经做过或者可以使用长轮询/彗星服务器来管理flash/flex多用户游戏?
我有我的PHP网站的开发版本,当我将它移动到centOS操作系统上的生产服务器时,我发现我的locale版本的en_EN无效.
你能否告诉我是什么原因造成这种情况以及如何使其发挥作用?我使用setlocale和gettext在PHP中使用i18n.
我收到的数据表示服务中的时隙作为字符串形式:
1500-1600
这意味着下午3点到4点.
我将列出这些例如
1200-1300
1300-1400
1400-1500
我必须在UI中表示这一点
中午12点至下午1点
下午1点到2点
下午2点 - 下午3点
不幸的是,这个列表可能是随机顺序.
我的问题是有没有办法使用DateTime对象能够将24小时时间转换为12小时时间,还有一种方法可以按顺序排序时间吗?
目前我觉得我将不得不编写一个自定义解析函数,但想知道是否有人知道如何更好地做到这一点?或者可以建议如何实现这一目标.
我是一名拥有超过10年经验的C/C++程序员.我也知道python和perl,但我从未将这些语言用于Web开发.
现在由于某些原因我想进入Web开发领域,作为转换的一部分,我必须学习css,javascript,(x)html等.
所以我需要一个建议,为这些主题提供良好的信息来源.有一段时间我不想阅读冗长的教程,我想要一些快速和肮脏的东西,一些东西可以开始.
我有这个代码.它来自Zend Reading Mail示例.
$message = $mail->getMessage(1);
// output first text/plain part
$foundPart = null;
foreach (new RecursiveIteratorIterator($mail->getMessage(1)) as $part) {
try {
if (strtok($part->contentType, ';') == 'text/plain') {
$foundPart = $part;
break;
}
} catch (Zend_Mail_Exception $e) {
// ignore
}
}
if (!$foundPart) {
echo 'no plain text part found';
} else {
echo $foundPart->getContent();
}
Run Code Online (Sandbox Code Playgroud)
我能得到的是消息,它运作正常.但是尝试将消息解码为可读的东西是行不通的.我已经尝试过Zend_Mime,imap_mime和iconv而没有运气.
这是我得到的一个例子 $foundPart->getContent();
Hall = F3 heim = FAr
它应该说"Hallóheimúr"
我想要的只是一些图书馆,我可以在实践中"按下按钮,接收培根".我的意思是,我只想将库指向POP3电子邮箱,并以可读的形式(没有任何编码问题)和附件获取电子邮件.
imap_mime_header_decode()给我一个包含相同数据的数组.
iconv_ mime_ decode()是一样的
有没有人知道为什么会发生这种情况或某些我可以抽象出来的库(PHP/Python或Perl)