我想在Python中的列表上进行一些模式匹配.例如,在Haskell中,我可以执行以下操作:
fun (head : rest) = ...
Run Code Online (Sandbox Code Playgroud)
因此,当我传入一个列表时,head将是第一个元素,rest并将成为尾随元素.
同样,在Python中,我可以自动解压缩元组:
(var1, var2) = func_that_returns_a_tuple()
Run Code Online (Sandbox Code Playgroud)
我想用Python中的列表做类似的事情.现在,我有一个返回列表的函数,以及执行以下操作的一大块代码:
ls = my_func()
(head, rest) = (ls[0], ls[1:])
Run Code Online (Sandbox Code Playgroud)
我想知道我是否能以某种方式在Python中用一行来代替,而不是两行.
我试图让下面的方法签名工作.因为这是一个匿名类型我有一些麻烦,任何帮助都会很棒.
当我在QuickWatch窗口中查看sortedGameList.ToList()时,我得到了签名
System.Collections.Generic.List<<>f__AnonymousType0<System.DateTime,System.Linq.IGrouping<System.DateTime,DC.FootballLeague.Web.Models.Game>>>
Run Code Online (Sandbox Code Playgroud)
非常感谢
唐纳德
public List<IGrouping<DateTime, Game>> getGamesList(int leagueID)
{
var sortedGameList =
from g in Games
group g by g.Date into s
select new { Date = s.Key, Games = s };
return sortedGameList.ToList();
}
Run Code Online (Sandbox Code Playgroud) 与此问题类似......
您在Java代码中实际发现的最差实践是什么?
我的是:
我在Ubuntu机器上运行SBCL.我想写一个小程序,我想给只有Windows运行的朋友.在我的机器上将它交叉编译成"独立"Windows程序(即通常的运行时+核心组合)的最快方法是什么?
每次我做一个hg diff file.ext我最终使用控制台差异应用程序.我想使用Kdiff3或WinMerge(我正在使用Windows).
有办法改变吗?我在Mercurial文档中找不到引用(我不是在谈论合并!).
我的应用程序使用连接到PC的测量仪器.我希望能够使用来自不同供应商的类似仪器.
所以我定义了一个接口:
interface IMeasurementInterface
{
void Initialize();
void Close();
}
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.在测量之前,我需要设置仪器,这意味着不同仪器的参数非常不同.所以我想定义一个方法,它接受可以有不同结构的参数:
interface IMeasurementInterface
{
void Initialize();
void Close();
void Setup(object Parameters);
}
Run Code Online (Sandbox Code Playgroud)
然后我会将对象投射到我需要的任何东西上.这是要走的路吗?
我有一个XML需要数据绑定到WPF TreeView.这里的XML可以有不同的结构.TreeView应该是数据绑定通用的,足以加载任何层次结构的排列.但是,节点上的XAttribute(称为Title)应该数据绑定到TreeViewItem的头文本而不是节点名.
要绑定的XML:
<Wizard>
<Section Title="Home">
<Loop Title="Income Loop">
<Page Title="Employer Income"/>
<Page Title="Parttime Job Income"/>
<Page Title="Self employment Income"/>
</Loop>
</Section>
<Section Title="Deductions">
<Loop Title="Deductions Loop">
<Page Title="Travel spending"/>
<Page Title="Charity spending"/>
<Page Title="Dependents"/>
</Loop>
</Section>
</Wizard>
Run Code Online (Sandbox Code Playgroud)
XAML:
<Window x:Class="Wpf.DataBinding.TreeViewer"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Wpf.DataBinding"
Title="TreeViewer" Height="300" Width="300">
<Window.Resources>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Elements}" x:Key="TVTemplate">
<TreeViewItem Header="{Binding Path=Name}"/>
</HierarchicalDataTemplate>
</Window.Resources>
<StackPanel>
<TreeView x:Name="_treeView" Style="{StaticResource TVallExpanded}"
ItemsSource="{Binding Path=Root.Elements}"
ItemTemplate="{StaticResource TVTemplate}" />
</StackPanel>
</Window>
Run Code Online (Sandbox Code Playgroud)
XAML的代码隐藏,它将XML加载到XDocument并将其绑定到TreeView …
我匹配标识符,但现在我遇到了问题:我的标识符允许包含unicode字符.因此,旧的做事方式是不够的:
t_IDENTIFIER = r"[A-Za-z](\\.|[A-Za-z_0-9])*"
Run Code Online (Sandbox Code Playgroud)
在我的标记语言解析器中,我通过允许除了我明确使用的那些字符之外的所有字符来匹配unicode字符,因为我的标记语言只有两个或三个我需要以这种方式转义的字符.
如何将所有unicode字符与python正则表达式和ply匹配?这也是一个好主意吗?
我想让人们在他们的程序中使用像Ω»«°foo²väliπ这样的标识符作为标识符(变量名等).哎呀!我希望人们可以用他们自己的语言编写程序,如果它是实用的!无论如何,unicode现在在各种各样的地方得到支持,它应该传播.
编辑:POSIX字符类似乎不被python正则表达式识别.
>>> import re
>>> item = re.compile(r'[[:word:]]')
>>> print item.match('e')
None
Run Code Online (Sandbox Code Playgroud)
编辑:更好地解释我需要的东西.我需要一个正则表达式匹配所有unicode可打印字符,但根本不匹配ASCII字符.
编辑:r"\ w"做了我想要的东西,但它不匹配«»,我还需要一个与数字不匹配的正则表达式.
我给出了一个由纬度和经度定义的位置.现在我想计算一个距离该点10公里的边界框.
边界框应定义为latmin,lngmin和latmax,lngmax.
我需要这些东西才能使用panoramio API.
有人知道如何获得积分的公式吗?
编辑:伙计们我正在寻找一个公式/函数,它以lat&lng作为输入并返回一个边界框作为latmin&lngmin和latmax&latmin.Mysql,php,c#,javascript很好,但伪代码也应该没问题.
编辑:我不是在寻找能够显示2点距离的解决方案
我已经看到了命名存储过程的各种规则.
有些人使用usp_作为sproc名称的前缀,其他人使用应用程序名称的缩写作为前缀,还有其他人使用所有者名称.您不应该在SQL Server中使用sp_,除非您真正的意思.
有些人用动词(Get,Add,Save,Remove)启动proc名称.其他人则强调实体名称.
在具有数百个sprocs的数据库中,当您认为已存在时,可能很难滚动并找到合适的sproc.命名约定可以使定位sproc更容易.
你使用命名约定吗?请描述一下,并解释为什么你喜欢它而不是其他选择.
答复摘要:
为什么我选择我做的答案:有很多好的回答.谢谢你们!如你所见,选择一个是非常困难的.我选择的那个与我产生共鸣.我遵循他描述的相同路径 - 尝试使用Verb + Noun然后无法找到适用于Customer的所有sprocs.
能够定位现有的sproc,或确定是否存在,甚至是非常重要的.如果有人无意中创建了具有其他名称的重复sproc,则可能会出现严重问题.
由于我通常使用包含数百个sprocs的非常大的应用程序,因此我倾向于使用最容易找到的命名方法.对于较小的应用程序,我可能会提倡Verb + Noun,因为它遵循方法名称的一般编码约定.
他还提倡使用app name作为前缀,而不是使用不太有用的usp_.有几个人指出,有时数据库包含多个应用程序的sprocs.因此,使用app name前缀有助于隔离sprocs并帮助DBA和其他人确定sproc用于哪个应用程序.